понедельник, 29 марта 2010 г.

Загрузка Windows Server 2008 R2 по iSCSI

Во многих руководствах и статьях вы можете прочитать о поддержке загрузки гипервизора VMware ESX с общего хранилища по протоколу iSCSI. Использование такого варианта хранения ОС/гипервизора позволит избавиться от еще одной точки отказа в вашем сервере и более эффективно использовать дисковые ресурсы. Но у этого решения есть один недостаток - требование наличия аппаратного iSCSI адаптера, стоимость которого может быть сравнима с адаптером Fibre Channel.

А что же с главным конкурентом VMware - компанией Microsoft? Оказывается, с загрузкой по iSCSI у Windows Server 2008 (R2) все обстоит гораздо интереснее.

Windows Server 2008 поддерживает не только загрузку, но также может быть установлена на LUN, подключаемый по протоколу iSCSI силами сетевой карты и Microsoft iSCSI Initiator. Это значит, что теперь вы можете использовать в своей инфраструктуре полностью бездисковые серверы, не разоряясь на дорогие FC или iSCSI HBA адаптеры.

Для проверки этой возможности на практике, я установил iSCSI Target на один из виртуальных серверов (для этого использовалось ПО от StarWind Software) и создал один LUN на 32Гб.

В качестве клиента выступил компьютер с интегрированной сетевой картой, поддерживающей загрузку по сети по iSCSI, например Intel 82574L.

После этого, в bios'е я настроил возможность загрузки по iSCSI. В зависимости от производителя, модели мат.платы и сетевых карт, а также версии bios'а, вам может потребоваться обновить микрокод для появления данной возможности, у меня данная возможность была доступна из коробки.

На определенном этапе загрузки системы, вы должны зайти в консоль агента сетевой карты (Ctrl + D) для настройки параметров iSCSI.
Для сетевых карт Intel вы можете выбрать вариант автоматического получения сетевых настроек по DHCP, либо задать их вручную.
Довольно удобно бывает создать резервацию по MAC адресу на DHCP сервере, чтобы клиент получил все настройки, включая IP адрес хранилища сервера и имя Target'а, чтобы не приходилось, как в моем случае, пару раз перезагружаться из-за нескольких опечаток.
Наибольший интерес представляет опция 017 Root Path, в которую можно добавить строку в формате:
iscsi:<server name or IP address>:<protocol>:<port>:<lun>:<targetname>
, где <server name or IP address> - адрес СХД;
<protocol> - транспортный протокол, используемый iSCSI (tcp);
<port> - порт, используемый iSCSI (3260);
<lun> - номер LUN'а, который нужно подключить (начиная с 0);
<targetname> - имя цели (например в формате IQN).

Если все настроено правильно, то при следующей загрузке компьютера, сетевой адаптер обнаружит и подключит LUN.

Сам процесс установки ОС на iSCSI хранилище никак не меняется, просто в списке доступных дисков выбираете подключенный LUN.

После завершения загрузки системы в диспетчере устройств можете увидеть ваш сетевой диск.
Заметьте, что вы также не можете отключить сетевой адаптер, через который система подключается к сетевому хранилищу.

Вдобавок, ipconfig выдает очень интересную картинку.
Если у вас не настроена резервация на DHCP сервере, и настройки в агенте вы задаете вручную, то у вашего сетевого адаптера будет два IP адреса.

Как видите, подключение дисков и загрузка ОС по протоколу iSCSI совсем не сложный процесс, однако позволит вам централизованно управлять дисковыми ресурсами не только виртуальных машин, но и физических серверов/гипервизоров. А при необходимости вы сможете быстро поднять вышедший из строя сервер, подключив LUN к другому компьютеру по сети.

P.S. Первоначально я планировал использовать вторую сетевую карту и сервер WDS для загрузки компьютера по протоколу PXE для установки ОС по сети. Однако, из-за особенностей мат.платы одновременно не работали загрузчик PXE и iSCSI. В теории, это ограничение можно было бы обойти, если создать Discover образ для WDS и записать его на flash или CD. Но такое решение, все-таки, не настолько удобное, как полностью сетевая загрузка и установка ОС.

По этой же причине у меня не получилось проверить, сохранилась ли проблема с установкой через WDS на iSCSI LUN в Windows Server 2008 R2.

При подготовке статьи использовались следующие материалы:
  1. Intel iSCSI Remote Boot User Guide for Intel Network Adapters

14 комментариев:

  1. а для ESX такая загрузка не возможна?
    в смысле не с полноценного iSCSI инициатора?

    ОтветитьУдалить
  2. Стандартными средствами из коробки, насколько я знаю - нет. В VMware iSCSI SAN Configuration Guide сказано, что поддерживается загрузка только с H/W iSCSI HBA.

    Хотя, если хочется пошаманить, то можно попробовать: http://stechblog.blogspot.com/2009/06/iscsi-boot-server.html

    ОтветитьУдалить
  3. просто меня удивляет - какая разница какую ОС загружать таким образом? Работа то делается сетевым контроллером.
    Или я чего то не понимаю?

    ОтветитьУдалить
  4. если есть hw iscsi boot то все понятно, вот как с софтового iscsi загрузиться ?
    (у меня через gpxe получалось, только настраивать долго)

    ОтветитьУдалить
  5. А как насчёт MTU? Если у меня в SAN сети MTU 9000 стоит, смогу я загрузиться?

    ОтветитьУдалить
  6. Не пробовал, но должно работать. Если в сеть добавить устройство без поддержки Jumbo Frames, они будут кадрами стандартного размера обмениваться.

    ОтветитьУдалить
  7. Анонимный14 июня 2013 г., 14:36

    Использую интеловскую карту I350-T2, перепрошитую для загрузки по iSCSI интеловской же утилитой, в качестве таргета СХД Thecus N8800pro v2 с настроенными LUN-ами. В биосе LUN виден, но во время установки Win2008R2 с DVD - нет! не могу понять почему (хотел проинсталлировась с нуля ОС на iSCSI раздел и с него грузиться).

    ОтветитьУдалить
    Ответы
    1. Попробуйте поэкспериментировать с порядком загрузки и переместить DVD после сетевой карты и жесткого диска. Проверьте также, что LUN ID, под которым вы презентуете диски равен 0. Попробуйте задать сетевые настройки через резервацию в DHCP.

      Удалить
    2. Анонимный17 июня 2013 г., 14:24

      Так всё и есть: DVD стоит после сетевой карты, жёсткого диска нет вообще (а может он всё таки нужен на этапе установки - для временных файлов? Проверю). LUN ID 0, все сетевые настройки (и таргета и инициатора) сделаны через DHCP. Буду копать дальше. (Грешу ещё на настройки портов и VLANов на коммутаторе Cisco 2960G - там вообще пока ничего не проверял-настраивал).

      Удалить
  8. Анонимный19 июня 2013 г., 10:53

    "В лоб" не получилось-сделал "в обход". Установил ОС на жёсткий диск, потом (нашёл программу Acronis® Backup & Recovery™ 11.5 - она iSCSI-тома уже поддерживает)забекапил жёсткий диск целиком(вместе в MBR и тд)и восстановил на iSCSI том. Win 2008r2 стала загружаться прямо с iSCSI LUN-a! Правда до конца не грузится (идёт на перезагрузку - надо допиливать саму винду я так понял: файл подкачки отключать и тд)), но лёд тронулся. Всем спасибо.

    ОтветитьУдалить
  9. Можно ли задать несколько target или подключить дополнительные target уже после загрузки чтобы увеличить быстродействие используя двух портовую сетевую ?

    ОтветитьУдалить
    Ответы
    1. Для LUN, с которого происходит загрузка - не уверен, что это будет работать. Для других LUN - можно настроить multipathing.

      Удалить
  10. У меня 3 гигабитных сетевых и хотелось получить соответствующую производительность, первоначально хотелось и загрузку зделать с iscsi но видимо только диск с виртуалками получится ...

    ОтветитьУдалить
  11. Успешно настроили LUN, Винда его видит при установке, копирует туда свои файлы и после первой перезагрузки больше его не видит) Успешно смогли установить только Windows 10, а все серверные версии после первой перезагрузки стопорятся. У кого-нибудь есть идеи куда копать?

    ОтветитьУдалить