2 Replies Latest reply on Sep 22, 2015 5:36 AM by InnerLife

    USB flash в качестве datastore

    tim89 Lurker

      Добрый день!

       

      Система домашняя, и понятно, что подобное не стоит делать в производственной среде

      И так как она домашняя, то представляет из себя обычный системник без raid контроллера, и хотелось бы иметь хоть какой-то заменитель его.

      Идея следующая:

           ESXi загружается с флэшки

           SATA контроллер с тремя хардами пробрасывается в вм (линукс)

           В ней делается рейд5

           Расшаривается по NFS

           Подключается к ESXi как NFS datastore, на котором размещаются все остальные ВМ

       

      Проблема заключается в том, что хоть сама система будет находиться на массиве, в ESXi должен быть файл конфигурации, который занимает пару килобайт, но положить его некуда

      Возможно ли использовать для этого USB flash, с которой загружается сам ESXi или еще одну флэшку?

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

      Есть ли решение?

       

      Заранее спасибо.

        • 1. Re: USB flash в качестве datastore
          Sladky Master

          Делать так нельзя. USB не может быть использован в качестве датасторы. Ограничение со стороны VMWare.

           

          В остальном ваша метода рабочая, я так делал, только не с NFS, а с iSCSI. Все работало.

          1 person found this helpful
          • 2. Re: USB flash в качестве datastore
            InnerLife Lurker

            Лучше поздно, чем никогда, ведь так?) Нашел способ как хранить файлы виртуальных машин на той же флэшке, на которую установлен гипервизор.

            Протестировал на esxi 6 с USB флэшкой Leef Surge на 16Гб.

             

            Для начала устанавливаем всё как обычно на флэшку, не забыв в процессе установки запомнить имя диска, на который производится установка. У флэшек диск именуется по маске 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.