На одном из наших Vsphere ESxi серверов версии 5.5 установлен RAID адаптер Adaptec ASR72405 c подключёнными к нему 24 жёсткими дисками по 5 TB марки ST5000NM0024. Нами было принято решение построить RAID 60 на 22 дисках и ещё 2 диска сконфигурировать в hot-spare. Это обеспечивало нам необходимое дисковое пространство при максимальной полученной скорости доступа при потоковом чтении/записи — в районе 3.5 гигабайта в секунду на запись и 3.3 гигабайта в секунду на чтение. Обращаю внимание ещё раз, что по специфике нашей задачи нас интересовала именно максимальная скорость при потоковом чтении/записи.
Однако суммарная ёмкость получаемого тома (и необходимая нам для нашей задачи) составляет 81.826 терабайта, что превышает максимально поддерживаемые ESXi 64TB. (Это ограничение действительно вплоть до последней на настоящий момент версии 6.5) Создание двух логических устройств/рейд массивов по 10 дисков каждый не подходило, поскольку уменьшало максимальную скорость доступа почти вдвое и значительно уменьшало общий суммарный размер хранилища из-за увеличения количества дисков, выделенных для чётности (в двух массивах их, соответственно будет в 2 раза больше чем в одном) и дисков hot-spare, поскольку каждый массив RAID-60 требует чётного количества дисков — т.е. 4 диска вынужденно уходили в hot-spare. Первоначально мы попробовали создать два логических диска (тома) используя по ? каждого жёсткого диска для каждого тома соответственно, однако тесты отказоустойчивости выявили неприятную особенность (я бы даже назвал это багом) логики работы внутренних микропрограмм Adaptec в нашей конфигурации: при выходе из строя жёсткого диска и перестроении массива RAID контроллер подключал к одному логическому диску половину одного hot-spare диска, а к другому – половину другого hot-spare диска. А при замене диска на исправный – был не в состоянии закончить copying-back процесс и зависал в состоянии 99% на более чем неделю – дольше мы не ждали. При этом никаких инструментов выяснить причину этого зависания и/или как-то вручную восстановить логические диски Adaptec не предоставляет. (Естественно, нами использовались последние доступные версии firmware и raid management.)
На наше обращение в техническую поддержку Adaptec мы получили рекомендацию использовать жёсткие диски в логических дисках целиком, а не частично. Дословно – «If all arrays do not complete the rebuild correctly, I would recommend you reconfigure the system to have several separate RAID arrays rather than the arrays spread across all the drives.» По причинам описаным выше, данное решение нас не устраивало.
Таким образом, у нас возникла необходимость разделить единый RAID диск размером почти 82 терабайта на два тома примерно по 41 терабайту на уровне разделов на диске средствами операционной системы. Vsphere ESXi в нашем случае. Однако стандартно через GUI такая возможность не поддерживается. ESXi позволяет через GUI создать только один data store на каждом подключённом диске, и несмотря на то, что на диске ещё осталось свободное место, GUI не позволяет создать ещё один data store. Ниже вы найдёте инструкцию, как сделать это средствами CLI.
Прежде всего вам необходимо разрешить SSH доступ к вашему ESXi хосту. После этого выясните, как именно называется ваш RAID массив. Это, например, можно посмотреть через GUI:
Т.е., для всех дальнейших операций наш диск будет называться
/vmfs/devices/disks/eui.3167ece000d00000
Перед началом разметки диска проверьте текущее состояние таблицы разделов и убедитесь что у вас нет никаких уже существующих разделов на этом диске:
~ # partedUtil getptbl /vmfs/devices/disks/eui.3167ece000d00000
gpt
10938084 255 63 175720329216
Далее проверьте максимальный доступный для использования сектор диска:
~ # partedUtil getUsableSectors /vmfs/devices/disks/eui.3167ece000d00000
34 175720329182
Теперь можно создавать необходимые разделы:
~ # partedUtil setptbl "/vmfs/devices/disks/eui.3167ece000d00000" gpt "1 2048 87031810047 AA31E02A400F11DB9590000C2911D1B8 0" "2 87031810048 175720329182 AA31E02A400F11DB9590000C2911D1B8 0"
Первый раздел создаётся с сектора 2048 по сектор 87031810047, второй с сектора 87031810048 по сектор 175720329182. В вашем случае эти значения скорей всего будут другими. Идентификатор AA31E02A400F11DB9590000C2911D1B8 должен быть скопирован без изменений, он означает, что создаётся раздел типа VMFS. 0 после этого идентификатора означает, что раздел будет не загружаемым.
Если все значения указаны правильно, то вы получите ответ
gpt
0 0 0 0
1 2048 87031810047 AA31E02A400F11DB9590000C2911D1B8 0
2 87031810048 175720329182 AA31E02A400F11DB9590000C2911D1B8 0
Можете так же проверить полученную таблицу разделов:
~ # partedUtil getptbl /vmfs/devices/disks/eui.3167ece000d00000
gpt
10938084 255 63 175720329216
1 2048 87031810047 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
2 87031810048 175720329182 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
Это означает что нами были успешно созданы два раздела, и они имеют имена eui.3167ece000d00000:1 и eui.3167ece000d00000:2
Теперь осталось только создать data stores.
Это делается командами
~ # /sbin/vmkfstools -C vmfs5 -b 1m -S Data1 /vmfs/devices/disks/eui.3167ece000d00000:1
и
~ # /sbin/vmkfstools -C vmfs5 -b 1m -S Data2 /vmfs/devices/disks/eui.3167ece000d00000:2
Если всё сделано правильно, то после каждого запуска команды вы увидите что-то вроде:
create fs deviceName:'/vmfs/devices/disks/eui.3167ece000d00000:1', fsShortName:'vmfs5', fsName:'Data1'
deviceFullPath:/dev/disks/eui.3167ece000d00000:1 deviceFile:eui.3167ece000d00000:1
Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
Creating vmfs5 file system on "eui.3167ece000d00000:1" with blockSize 1048576 and volume label "Data1".
Successfully created new volume: 59e14137-1e03a524-12db-002590826ec4
Через несколько секунд оба ваших data store станут доступны в GUI:
Более подробную информацию по использованию этих команд вы можете найти здесь и здесь.
Буду рад, если сэкономил кому-то несколько часов. Отвечу на любые вопросы.
Спасибо, что дочитали до конца.
Комментарии (10)
Arxitektor
30.10.2017 09:26Однако стандартно через GUI такая возможность не поддерживается.
Это конечно слегка удивительно ))
Что такая простейшая операция не возможно через GUImikkisse
30.10.2017 09:44Этой операцией может раз в год кто и воспользуется. Не думаю, что для подобного стоило бы допиливать GUI. Да и потенциально опасные операции лучше прятать с глаз долой.
ekhaskel Автор
30.10.2017 11:32Вообще, созданием дисков пользуются обычно однократно, при установке системы. )) Удаление диска, или удаление виртуальной машины — это гораздо более потенциально опасная операция, чем возможность создать несколько разделов на диске. Тем не менее, все эти возможности в GUI имеются. Я не знаю чем руководствовались разработчики, не позволяя создать дополнительный раздел при наличии свободного места — скорей всего просто никому не пришла в голову такая задача.
ekhaskel Автор
30.10.2017 11:23По состоянию на сейчас — т.е. версия 6.5 — это ограничение имеет место быть. Немного ошибся, ограничение 62TB на размер файла, а на размер LUN 64TB, но это не принципиально.
www.vmware.com/pdf/vsphere6/r65/vsphere-65-configuration-maximums.pdf
В любом случае, к тому моменту как уберут это ограничение, емкости дисков вырастут в несколько раз и, вполне возможно, что задача по прежнему будет актуальна, хоть и с другими цифрами.
xxfatumxx
30.10.2017 11:45Вы версию ESXi хоть где-нибудь укажите. А то пост может дожить до тех времен, когда лимит в 62 ТБ будет преодолен и информация станет недостоверной.
mikkisse
Интересная задача и решение. Спасибо.
ekhaskel Автор
Спасибо вам за доброе слово ))