Сделай сам: стенд с решениями для виртуализации — настройка узлов кластера для использования общего хранилища


Мы уже установили и настроили необходимое количество серверов, которые будут служить узлами будущего кластера. Осталось добавить к ним последний компонент, который объединит их единую систему и позволит, собственно, настроить клужбу кластеризации. Сегодня речь пойдёт о том, как подключить узлы кластера к общему хранилищу.


Процедура подключения хранилища к узлам кластера состоит из двух основных этапов. Во-первых, потребуется подключить общий диск по протоколу iSCSI. А во-вторых — разметить и отформатировать этот диск. Первый шаг необходимо выполнить последовательно на всех узлах будущего кластера. А второй — только один раз на любом из узлов.


Подключение общего диска с помощью iSCSI Software Initiator 


Этот шаг потребует использования утилиты iSCSIcli. Сразу предупреждаю, что её синтаксис далеко не всегда выглядит очевидным, поэтому будьте внимательны. Для удобства я отдельно выложил полную версию встроенной справки iSCSIcli. Нижеследующие команды можно набирать отдельно — сначала выполнить «iscsicli command1», затем «iscsicli command2» и так далее. А можно воспользоваться интерактивным режимом — набрать просто «iscsicli» и попасть в собственную командную оболочку утилиты.


Я для кратости буду пользоваться вторым вариантом. Вводимые мною команды выделены курсивом. Обычный текст — ответы и подсказки, выводимый утилитой.



C:\Users\Administrator.UNI>iscsicli
Microsoft iSCSI Initiator Version 6.0 Build 6000


[iqn.1991-05.com.microsoft:hyperv-node1.lab.com] Enter command or ^C to exit


Для начала нам потребуется указать инициатору на клиенте адрес Target на сервере.



QAddTargetPortal hyperv-storage.lab.com
The operation completed successfully.


Здесь нужно прерваться и на минуту вернуться к управлению iSCSI Target. После выполнения предыдущей команды наш инициатор предпринял попытку подключения к хранилищу. Однако, он пока что не может получить доступ к дискам, потому что адрес инициатора (IQN) явным образом не проассоциирован с Target. Теперь, после того, как инициатор однажды попробовал подкючиться к серверу, последний добавил IQN инициатора в свой список потенциальных клиентов. И мы можем указать этот IQN в свойствах Target. (Строго говоря, сделать это мы могли и раньше — например, сразу на этапе создания Target. Но тогда нам пришлось бы вручную указывать IQN, что чревато опечатками).


После того, как вы проассоциируете IQN инициатора с тем Target, который содержит нужные виртуальные диски, можно перейти обратно к будущему узлу кластера и продолжить настойку инициатора. Запросим список доступных Targets.



listtargets
Targets List:
    iqn.1991-05.com.microsoft:hyperv-storage-cg01-target
The operation completed successfully.


Понятно, что у нас сейчас всего один Target — тот, который мы только что проассоцииовали с IQN инициатора. Настало время подключить его.



QloginTarget iqn.1991-05.com.microsoft:hyperv-storage-cg01-target
Session Id is 0xfffffa8007076018-0x4000013700000006
Connection Id is 0xfffffa8007076018-0x5
The operation completed successfully.


А теперь сделаем его постоянным — чтобы он автоматически подключался каждый раз при загрузке сервера.



PersistentLoginTarget iqn.1991-05.com.microsoft:hyperv-storage-cg01-target t * * * * * * * * * * * * * * * 0
The operation completed successfully.


Я не издеваюсь — здесь действительно надо набрать подряд 15 (пятнадцать) звёздочек, разделённых пробелами. Но на этом обязательная часть настройки iSCSI Software Initiator закончена. Можно только ещё раз убедиться в этом.



ListPersistentTargets
Total of 1 peristent targets
    Target Name           : iqn.1991-05.com.microsoft:hyperv-storage-cg01-target


    Address and Socket    : 192.168.150.134 3260
    Session Type          : Data
    Initiator Name        : Root\ISCSIPRT\0000_0
    Port Number           : <Any Port>
++Security Flags        : 0x0
++Version              : 0
++Information Specified: 0x20
++Login Flags          : 0x8
++Username             :


The operation completed successfully.



[iqn.1991-05.com.microsoft:hyperv-node1.lab.com] Enter command or ^C to exit
ReportTargetMappings
Total of 1 mappings returned
    Session Id             : fffffa8007076018-4000013700000006
    Target Name            : iqn.1991-05.com.microsoft:hyperv-storage-cg01-target
    Initiator              : Root\ISCSIPRT\0000_0
    Initiator Scsi Device  :
\\.\Scsi3:
    Initiator Bus          : 0
    Initiator Target Id    : 0
        Target Lun: 0x0 <–> OS Lun: 0x0


The operation completed successfully.


Итак, диск подключен. Как и было обещано, ваш клиент (он же сервер Hyper-V — надеюсь, вы ещё не запутались) теперь воспринимает виртуальный диск, расположенный на сервере iSCSI Target, как обычный локальный диск. Я расчитываю, что для данного эксперимента вы создали новый виртуальный диск, так что сейчас он совсем пуст. Поэтому сейчас потребуется разметить и отформатировать его. Для этого покинем консоль iSCSIcli. Как объясняет каждое новое приглашение этой утилиты, для выхода надо нажать <Ctrl + C>.


Разметка и форматирование общего диска


Для этого мы воспользуемся другой интерактивной утилитой — DiskPart



C:\Users\Administrator>diskpart


Microsoft DiskPart version 6.0.6001
Copyright (C) 1999-2007 Microsoft Corporation.
On computer: HYPERV-NODE1


DISKPART> list disk


  Disk ###  Status      Size     Free     Dyn  Gpt
  ——–  ———-  ——-  ——-  —  —
  Disk 0    Online       410 GB      0 B
  Disk 1    Offline       25 GB    25 GB


Вот этот второй диск, который сейчас находится в состоянии «Offline», мы только что подключили по протоколу iSCSI. Дальше я буду приводить команды без подробных пояснений — мне кажется, что синтаксис DiskPart достаточно очевиден. Если у вас возникают здесь затруднения — обратитесь к официальной документации. Благо, её для DiskPart имеется в избытке — в отличие от iSCSIcli. Например:



Итак, 



DISKPART> select disk 1


Disk 1 is now the selected disk.


DISKPART> attributes disk clear readonly


Disk attributes cleared successfully.


DISKPART> online disk


DiskPart successfully onlined the selected disk.


DISKPART> create partition primary


DiskPart succeeded in creating the specified partition.


DISKPART> list volume


  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ———-  —  ———–  —–  ———-  ——-  ———  ——–
  Volume 0     D                       DVD-ROM         0 B  No Media
  Volume 1     C                NTFS   Partition    410 GB  Healthy    System
* Volume 2                      RAW    Partition     25 GB  Healthy


DISKPART> select volume 2


Volume 2 is the selected volume.


DISKPART> assign letter=R


DiskPart successfully assigned the drive letter or mount point.


DISKPART> format fs=ntfs label=cluster01 quick


  100 percent completed


DiskPart successfully formatted the volume.


DISKPART> exit


Leaving DiskPart…


Настройка второго узла кластера


Всё, что описано в этой и предыдущей статьях, напрямую относится к первому узлу вашего будущего кластера. Для всех последующих узлов этого кластера процедура будет незначительно отличаться. Но только в той части, которая касается подготовки общего диска с помощью утилиты DiskPart. Дело в том, что в Windows никакой дисковый ресурс не может быть одновременно доступен для записи одновременно нескольким системам. Следовательно, в каждый момент времени общий диск может находиться в состоянии «Online» только на каком-то одном из узлов. На всех остальных узлах, соответствено, в этот момент данный диск должен находиться в состоянии «Offline». Однако, поскольку вы уже разметили и отформатировали диск в ходе создания первого узла кластера, вам и не потребуется переводить его в состояние «Online» на других узлах.


Есть только одна вещь, которую стоит сделать после подключения диска по протоколу iSCSI (то есть завершения работы с iSCSIcli) на каждом из последующих узлов. Запустите DiskPart, выполните комаднду list disk — и убедитесь, что диск присутствует в системе, но находится в состоянии «Offline». Все остальные проверки выполнит Cluster Validation Tool. О нём мы поговорим в следующей статье.

Comments (1)

  1. Сергей says:

    ссылка битая в начале

    (Сегодня речь пойдёт о том, как подключить узлы кластера к общему хранилищу.)

Skip to main content