Филипп Зыков делится с нашими читателями, как физический диск на железе сервера превратить в RDM на vSphere:
Время от времени, особо упрямые и несогласные с предложенным функционалом Vsphere VCenter хотят вытворить что-то такое. А, потом, пишут про это статьи…
Итак, предыстория:
Я решил сделать супермегабюджетное решение в филиале. Там обитает админ, которого подпускать к серверам нельзя. Да, именно. Он не портит и не ломает, но придумывает такие кривые решения, что потом «нормальные» админы готовы ехать туда, чтобы обрушить на его голову свой праведный гнев. Так вот, для реализации «решения» есть DELL NF500 с 2 процами, 4Гб ОЗУ и RAID 5 2,7 Тб. Это вообще-то iSCSI-хранилище на Windows Server 2003. Нам для реализации кое-каких решений нужно завести 3 сервера Windows 2008R2. Железо покупать нельзя по целому ряду объективных и субъективных причин. Поэтому встал вопрос – как это организовать? Поставили ESX 4.0 и встал вопрос разметки встроенного RAID. Подумав, отдали 700Гб под VM, а вот остальное решили сделать RDM*. Но через графический интерфейс Vsphere VCenter этого сделать нельзя, только на SAN можно делать RDM.
Прим.*:Да, пользовательские данные я храню на RDM. Vmdk я уже стирал, они у нас бились, мы долго ругались и решили что RDM это наш выбор. Бэкапить нам 2 Тб нам некуда, железа-то нет, и не будет.
Поиск решения дал ссылку на решение, которое работает в ESX 3.5.
Опытным путем было установлено, что для ESX 4.0 данные рекомендации будут выглядеть так:
- Создаем для VM новый диск, после этого данный диск Remove без удаления, чтобы получить vmdk-файл/заготовку для конвертации! Диск можно создавать с параметрами по умолчанию. Какие они – не важно.
- Открываем Putty, чтобы в консоли написать немного команд.
- Смотрим разделы fdisk –l , находим нужный нам раздел из которого надо сделать RDM (можно опознать по размеру).
- Вычисляем его имя (naa.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) через esxcfg-scsidevs -c
- После этого в консоли вводим команду vmkfstools -i -d , которая делает конвертацию vmdk-файла.
Синтаксис ее такой : vmkfstools –i [Путь к vmdk –файл ] –d rdm:/vmfs/devices/disks/naa.xxxxxxxxxxxxxxxxxxxxx [vmdk-файл]
Пример: [root@dell-nf500 Arizona]# vmkfstools -i /vmfs/volumes/Local_Servers_VM/Arizona/Arizona_1.vmdk -d rdm:/vmfs/devices/disks/naa.60022190bd135e001238f9a43a44a6d8 Local_RDM.vmdk
Таким образом мы конвертируем любой vmdk-файл в RDM.
- После этого подключаем полученный vmdk через VC-клиент к VM и делаем с ним то, что считаем нужным.
Итак, на самом деле, это не совсем «кошер» и тянет на “грязный хак”, по меркам Vmware, но работает так как архитектура позволяет и допускает!
UPD. В комментариях Валерий Цуканов подсказывает другой работающий способ.
1. Создал из GUI обычный диск
2. Отцепил его от виртуальной машины
3. Выгнал “fdisk -l” и “ls -lh /vmfs/devices/disks/”
4. Открыл VMDK на редактирование, привел к следующему виду
————————————————————————-
# Disk DescriptorFile
version=1
encoding=”UTF-8″
CID=2fcb88a8
parentCID=ffffffff
createType=”vmfsRaw” <- новое значение
# Extent description
RW 3891167910 VMFSRAW “/vmfs/devices/disks/mpx.vmhba0:C0:T1:L0″ <- цифру брал из fdisk (Sec*Cyl*Head), путь из ls -lh
# The Disk Data Base
#DDB
ddb.longContentID = “31425c71cef152041d4c84452fcb88a8″
ddb.adapterType = “lsilogic” <- на buslogic не оживало
ddb.geometry.sectors = “63″ <- из fdisk
ddb.geometry.heads = “255″ <- из fdisk
ddb.geometry.cylinders = “242214″ <- из fdisk
ddb.virtualHWVersion = “7″
————————————————————————-
5. Подключил к vm, отформатировал, ошибок нет.