Домашняя виртуализация. Citrix XenServer vs VMware vSphere ESXi. Часть 3 — 1. VMware vSphere ESXi. USB Flash как datastore.


Часть 1. Введение.
Часть 2 – 1. Citrix XenServer. Настройка software raid.
Часть 2 – 2. Citrix Xenserver как NFS сервер.
Часть 2 – 3. Citrix Xenserver. Использование одной клавиатуры в гостевой и хост системах.
Часть 2 – 4. Citrix Xenserver. Баги.
Часть 3 – 1. VMware vSphere ESXi. USB Flash как datastore.
Часть 3 – 2. VMware vSphere ESXi. Использование одной клавиатуры в гостевой и хост системах.
Часть 4. Тестирование.
Часть 5. Заключение.

Помимо классических вариантов установки VMware vSphere ESXi может устанавливаться на флэшку. Это очень удобно для бездисковых систем, когда нужно просто установить гипервизор, а сами виртуальные машины хранятся на сетевом хранилище.

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

К несчастью ESXi по-умолчанию не позволяет создавать datastorage на флэш-дисках. Но есть путь в обход этого ограничения =)

Для начала устанавливаем всё как обычно на флэшку, не забыв в процессе установки запомнить имя диска, на который производится установка. У флэшек диск именуется по маске mpx*(н-р mpx.vmhba32:C0:T0:L0).

Если же гипервизор уже установлен, а не устанавливается с нуля, можно посмотреть имя диска в папке /vmfs/devices/disks/. Если usbarbitrator включен(а он по дефолту и так включен), в папке будет единственный диск с маской mpx* и все его логические разделы:

[root@optimus:~] ls /vmfs/devices/disks/
mpx.vmhba32:C0:T0:L0
mpx.vmhba32:C0:T0:L0:1
mpx.vmhba32:C0:T0:L0:5
mpx.vmhba32:C0:T0:L0:6
mpx.vmhba32:C0:T0:L0:7
mpx.vmhba32:C0:T0:L0:8
mpx.vmhba32:C0:T0:L0:9
***остальные диски***

Далее необходимо прочитать информацию об этом диске:

[root@optimus:~] partedUtil getptbl /vmfs/devices/disks/mpx.vmhba32\:C0\:T0\:L0
gpt
1948 255 63 31299584
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0

Т.к. утилита partedUtil не умеет добавлять разделы, необходимо скопировать информацию о уже созданных разделах в команду setptbl.
Также необходимо рассчитать последний сектор нового раздела. Он рассчитывается по формуле:

(Цилиндры * Головки * Секторы) - 1

что в моём случае (1948 * 255 * 63) — 1 = 31294619

В качестве начального сектора нового раздела я выбрал 7100000, в качестве номера — 10.

В качестве guid для нового раздела необходимо указать AA31E02A400F11DB9590000C2911D1B8, что соответствует vmfs. Полный список guid можно посмотреть командой partedUtil showGuids если интересно.

Итоговая команда setptbl выглядит так:

[root@optimus:~] partedUtil setptbl /vmfs/devices/disks/mpx.vmhba32\:C0\:T0\:L0 gpt "1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B 128" "5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 0" "6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 0" "7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 0" "8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 0" "9 18432007086079 9D27538040AD11DBBF97000C2911D1B8 0" "10 7100000 31294619 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
0 0 0 0
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 0
10 7100000 31294619 AA31E02A400F11DB9590000C2911D1B8 0

Раздел создан. Теперь его можно подключить как datastore командой(не забыв номер раздела в конце):

[root@optimus:~] vmkfstools -C vmfs5 -b 1m -S datastore /vmfs/devices/disks/mpx.vmhba32\:C0\:T0\:L0\:10
create fs deviceName:'/vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:10', fsShortName:'vmfs5', fsName:'datastore'
deviceFullPath:/dev/disks/mpx.vmhba32:C0:T0:L0:10 deviceFile:mpx.vmhba32:C0:T0:L0:10
ATS on device /dev/disks/mpx.vmhba32:C0:T0:L0:10: not supported
.
Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
Creating vmfs5 file system on "mpx.vmhba32:C0:T0:L0:10" with blockSize 1048576 and volume label "datastore".
Successfully created new volume: 560088e1-0f06407a-f7f6-0030489f10f0

После этого datastore должен быть доступен в vSphere Client(возможно, потребуется нажатие кнопки Refresh).

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


Ну и по хардкору(псс, я вам этого не говорил =)):
Возможно вам не хватит этих гигабайтов datastorage на флэшке (ну будет не хватать скажем пары мегабайт, всякое же может случиться =) )
В этом случае есть возможность урвать немножко памяти от последнего раздела с номером 9
Во избежание ошибки «Read-only file system» нужно открыть диск для записи командой:
esxcli system coredump partition set —enable false
Затем используете partedUtil resize для раздела 9, сохранив номер его первого сектора, и самостоятельно выбрав конечный. После чего повторяете инструкцию или делаете resize раздела 10.


Оригинальный пост был опубликован мной на форуме VMWare.

В следующей статье мы поговорим о гибком пробросе клавиатуры в гостевую систему.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *