Обновление 12.12.2017: Найден обходной вариант, который позволяет настроить VSAN и включить дедупликацию и компрессию без использования vCenter Server. Смотрите ниже по тексту.
Для тех, кто планирует построить свою домашнюю лабораторию на базе гипервизора VMware ESXi и программной СХД VMware vSAN, может пригодится следующая уловка, позволяющая включить поддержку дедупликации и компрессии на standalone хосте.
Думаю, что многие из вас находили статьи по т.н. bootstrap установке, когда vSAN настраивает без сервера управления vCenter Server и без какого-либо промежуточного хранилища. В частности такой способ развертывания используется в гиперконвергентных платформах VxRail и VxRack. С учетом постоянно снижающейся стоимости flash накопителей и наличия готовых платформ типа Intel NUC, становится возможным собрать весьма производительный, компактный и недорогой сервер для домашней лаборатории.
С гибридными конфигурациями vSAN все достаточно просто, в Интернете можно найти множество детальных руководств по такой настройке, однако, если вы решите использовать дедупликацию и компрессию на all-flash конфигурациях, то вам потребуется сделать несколько дополнительных шагов.
Поддержка компрессии и дедупликации появилась в vSAN 6.2, соответственно, вам потребуется использовать ESXi 6.0 U2 или выше.
Среди плюсов данного режима развертывания - отсутствие необходимости использования сервера управления vCenter Server для настройки и дальнейшей эксплуатации vSAN.
Для настройки также необходим функционирующий сервер vCenter Server. Это, пожалуй, главный недостаток данного варианта по сравнению с типовым vSAN Bootstrap, но это необходимый шаг для настройки Space Efficiency на дисковых группах с all-flash накопителями. В моем случае я развернул временный сервер vCenter на другом компьютере. После выполнения настроек сервер vCenter можно будет выключить и удалить.
Для настройки vSAN включите SSH на хосте и подключитесь к нему.
Включите на интерфейсе VMKernel поддержку vSAN, например:
{
"Name" : "naa.6000c29f63422c9b752b4e16b0853303",
"VSANUUID" : "",
"State" : "Ineligible for use by VSAN",
"Reason" : "Has partitions",
"IsSSD" : "0",
"IsCapacityFlash": "0",
"IsPDL" : "0",
},
{
"Name" : "naa.6000c2914ef142687a2ea87a31a4c207",
"VSANUUID" : "522af0ce-c313-dbfb-21b7-ba8e0b509778",
"State" : "In-use for VSAN",
"Reason" : "None",
"IsSSD" : "1",
"IsCapacityFlash": "0",
"IsPDL" : "0",
},
{
"Name" : "naa.6000c29dc7b03388ce238783d25a085c",
"VSANUUID" : "52964ee8-1ad3-51ee-8850-8315e0ebceb6",
"State" : "In-use for VSAN",
"Reason" : "None",
"IsSSD" : "1",
"IsCapacityFlash": "1",
"IsPDL" : "0",
},
]
Если накопитель не опознается как SSD устройство, то вы можете вручную пометить его. Выполните команду:
Подключитесь к серверу vCenter, в виртуальной инфрастуруктуре создайте кластер и активируйте в нем поддержку vSAN.
Добавьте хост в кластер. Эта операция, как и весь сервер vCenter, нужны только для того, чтобы активировать на хосте лицензию (триальную), позволяющую включить поддержку дедупликации и компрессии. Кривовато, но что поделаешь...
Переведите хост в режим обслуживания (maintenance mode) и уберите его из кластера. Выведите хост из режима обслуживания.
Перед настройкой кластера требуется включить поддержку дедупликации и компрессии для триальной лицензии VSAN. Сделать это можно из консоли SSH хоста, выполнив команду:
Enabled: true
Current Local Time: 2017-08-11T22:01:45Z
Local Node UUID: 598e2050-a425-2c28-5426-005056aacefb
Local Node Type: NORMAL
Local Node State: MASTER
Local Node Health State: HEALTHY
Sub-Cluster Master UUID: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Backup UUID:
Sub-Cluster UUID: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Membership Entry Revision: 0
Sub-Cluster Member Count: 1
Sub-Cluster Member UUIDs: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Membership UUID: 05298e59-0555-5bb1-c414-005056aacefb
Unicast Mode Enabled: true
Maintenance Mode State: OFF
Отредактируйте политики хранения на хосте, добавив опцию forceProvisioning. Данная опция игнорирует остальные параметры политики при создании объекта на vSAN в том случае, если они не могут быть соблюдены (а это как раз наш случай, т.к. для standalone хоста параметр hostFailuresToTolerate=1 соблюсти не получится):
------------ --------------------------------------------------------
cluster (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vdisk (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmnamespace (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmswap (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmem (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
Включите поддержку дедупликации и компрессии:
Device: naa.6000c2914ef142687a2ea87a31a4c207
Display Name: naa.6000c2914ef142687a2ea87a31a4c207
Is SSD: true
VSAN UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
Used by this host: true
In CMMDS: true
On-disk format version: 5
Deduplication: true
Compression: true
Checksum: 6910810568216580648
Checksum OK: true
Is Capacity Tier: false
Encryption: false
DiskKeyLoaded: false
naa.6000c29dc7b03388ce238783d25a085c
Device: naa.6000c29dc7b03388ce238783d25a085c
Display Name: naa.6000c29dc7b03388ce238783d25a085c
Is SSD: true
VSAN UUID: 52964ee8-1ad3-51ee-8850-8315e0ebceb6
VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
Used by this host: true
In CMMDS: true
On-disk format version: 5
Deduplication: true
Compression: true
Checksum: 4407850188756192377
Checksum OK: true
Is Capacity Tier: true
Encryption: false
DiskKeyLoaded: false
Если вы используете неподдерживаемы устройства, отключите мониторинг, чтобы лишний раз не обращать внимание на оповещения:
К сожалению, ESXi Web Client не отображает достаточное количество информации о vSAN, поэтому об эффективности работы дедупликации и компрессии придется судить "на глаз".
Для тех, кто планирует построить свою домашнюю лабораторию на базе гипервизора VMware ESXi и программной СХД VMware vSAN, может пригодится следующая уловка, позволяющая включить поддержку дедупликации и компрессии на standalone хосте.
Думаю, что многие из вас находили статьи по т.н. bootstrap установке, когда vSAN настраивает без сервера управления vCenter Server и без какого-либо промежуточного хранилища. В частности такой способ развертывания используется в гиперконвергентных платформах VxRail и VxRack. С учетом постоянно снижающейся стоимости flash накопителей и наличия готовых платформ типа Intel NUC, становится возможным собрать весьма производительный, компактный и недорогой сервер для домашней лаборатории.
С гибридными конфигурациями vSAN все достаточно просто, в Интернете можно найти множество детальных руководств по такой настройке, однако, если вы решите использовать дедупликацию и компрессию на all-flash конфигурациях, то вам потребуется сделать несколько дополнительных шагов.
Поддержка компрессии и дедупликации появилась в vSAN 6.2, соответственно, вам потребуется использовать ESXi 6.0 U2 или выше.
Среди плюсов данного режима развертывания - отсутствие необходимости использования сервера управления vCenter Server для настройки и дальнейшей эксплуатации vSAN.
Для настройки vSAN включите SSH на хосте и подключитесь к нему.
Включите на интерфейсе VMKernel поддержку vSAN, например:
esxcli vsan network ipv4 add -i vmk0Проверьте, что интерфейс успешно добавлен:
esxcli vsan network listПри помощи команды vdq -q проверьте, что накопители опознаются гипервизором как SSD, а накопитель, предназначенный для хранения данных, имеет аттрибут isCapacityFlash:
vdq -q[
{
"Name" : "naa.6000c29f63422c9b752b4e16b0853303",
"VSANUUID" : "",
"State" : "Ineligible for use by VSAN",
"Reason" : "Has partitions",
"IsSSD" : "0",
"IsCapacityFlash": "0",
"IsPDL" : "0",
},
{
"Name" : "naa.6000c2914ef142687a2ea87a31a4c207",
"VSANUUID" : "522af0ce-c313-dbfb-21b7-ba8e0b509778",
"State" : "In-use for VSAN",
"Reason" : "None",
"IsSSD" : "1",
"IsCapacityFlash": "0",
"IsPDL" : "0",
},
{
"Name" : "naa.6000c29dc7b03388ce238783d25a085c",
"VSANUUID" : "52964ee8-1ad3-51ee-8850-8315e0ebceb6",
"State" : "In-use for VSAN",
"Reason" : "None",
"IsSSD" : "1",
"IsCapacityFlash": "1",
"IsPDL" : "0",
},
]
Если накопитель не опознается как SSD устройство, то вы можете вручную пометить его. Выполните команду:
esxcli storage nmp device listВыполните команды, подставив нужный идентификатор naa и satp из вывода предыдущей команды:
esxcli storage nmp satp rule add --satp=VMW_SATP_LOCAL --device naa.600508b1001cdb71c7edb8e80eb6abf3 --option "enable_ssd"Если накопитель не помечен как CapacityFlash вы можете использовать команду, чтобы назначить на него нужный тэг (если этого не сделать, вы получите сообщение об ошибке при попытке добавить накопитель в дисковую группу в качестве capacity накопителя):
esxcli storage core claiming unclaim --type=device --device naa.600508b1001cdb71c7edb8e80eb6abf3
esxcli storage core claimrule load
esxcli storage core claimrule run
esxcli storage core claiming reclaim --device naa.600508b1001cdb71c7edb8e80eb6abf3
esxcli vsan storage tag add -d naa.6000c29dc7b03388ce238783d25a085c -t capacityFlash
Перед настройкой кластера требуется включить поддержку дедупликации и компрессии для триальной лицензии VSAN. Сделать это можно из консоли SSH хоста, выполнив команду:
vsish -e set /config/VSAN/strOpts/LicensedFeatures vit,allflash,stretchedcluster,erasurecoding,storageefficiency,encryptionВ консоли SSH хоста создайте новый кластер vSAN:
esxcli vsan cluster newПроверьте, что хост корректно добавился в кластер:
esxcli vsan cluster getCluster Information
Enabled: true
Current Local Time: 2017-08-11T22:01:45Z
Local Node UUID: 598e2050-a425-2c28-5426-005056aacefb
Local Node Type: NORMAL
Local Node State: MASTER
Local Node Health State: HEALTHY
Sub-Cluster Master UUID: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Backup UUID:
Sub-Cluster UUID: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Membership Entry Revision: 0
Sub-Cluster Member Count: 1
Sub-Cluster Member UUIDs: 598e2050-a425-2c28-5426-005056aacefb
Sub-Cluster Membership UUID: 05298e59-0555-5bb1-c414-005056aacefb
Unicast Mode Enabled: true
Maintenance Mode State: OFF
Отредактируйте политики хранения на хосте, добавив опцию forceProvisioning. Данная опция игнорирует остальные параметры политики при создании объекта на vSAN в том случае, если они не могут быть соблюдены (а это как раз наш случай, т.к. для standalone хоста параметр hostFailuresToTolerate=1 соблюсти не получится):
esxcli vsan policy setdefault -c cluster -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
esxcli vsan policy setdefault -c vdisk -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
esxcli vsan policy setdefault -c vmnamespace -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"Проверьте настройки политики при помощи команды:
esxcli vsan policy getdefaultPolicy Class Policy Value
------------ --------------------------------------------------------
cluster (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vdisk (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmnamespace (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmswap (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmem (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
Включите поддержку дедупликации и компрессии:
esxcli system settings advanced set -o "/VSAN/DedupScope" -i 2Проверьте значение параметра:
esxcli system settings advanced list -o "/VSAN/DedupScope"Добавьте диски в дисковую группу:
esxcli vsan storage add -d naa.6000c29dc7b03388ce238783d25a085c -s naa.6000c2914ef142687a2ea87a31a4c207Проверьте, что диски добавлены и на них включена поддержка дедупликации и компрессии:
esxcli vsan storage listnaa.6000c2914ef142687a2ea87a31a4c207
Device: naa.6000c2914ef142687a2ea87a31a4c207
Display Name: naa.6000c2914ef142687a2ea87a31a4c207
Is SSD: true
VSAN UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
Used by this host: true
In CMMDS: true
On-disk format version: 5
Deduplication: true
Compression: true
Checksum: 6910810568216580648
Checksum OK: true
Is Capacity Tier: false
Encryption: false
DiskKeyLoaded: false
naa.6000c29dc7b03388ce238783d25a085c
Device: naa.6000c29dc7b03388ce238783d25a085c
Display Name: naa.6000c29dc7b03388ce238783d25a085c
Is SSD: true
VSAN UUID: 52964ee8-1ad3-51ee-8850-8315e0ebceb6
VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
Used by this host: true
In CMMDS: true
On-disk format version: 5
Deduplication: true
Compression: true
Checksum: 4407850188756192377
Checksum OK: true
Is Capacity Tier: true
Encryption: false
DiskKeyLoaded: false
esxcli system settings advanced set -o /LSOM/VSANDeviceMonitoring -i 0При развертывание ВМ из web-консоли ESXi я наткнулся на небольшой баг. При подключении к ESXi напрямую через web-клиент, имя хранилища отображается с пробелом "vSAN Datastore", тогда как в интерфейсе vSphere Web Client и через CLI, как "vSANDatastore", это приводит к ошибке при попытке развернуть ВМ через ESXi Web Client. Исправить это можно, просто переименовав хранилище в vSANDatastore.
К сожалению, ESXi Web Client не отображает достаточное количество информации о vSAN, поэтому об эффективности работы дедупликации и компрессии придется судить "на глаз".
Насколько такой вариант интереснее вот такого? https://b3n.org/wp-content/uploads/2015/07/vmware_all_in_one_with_storage_network.png
ОтветитьУдалитьЕсли vSAN скармливать диски в режиме passthrough, как при этом работает redundancy? К примеру, имеем 4 SSD диска под capacity и 2 под cache - что будет в случае отказа одного из дисков на standalone host?
Я не в курсе текущих функциональных возможностей FreeNAS. Поддерживает ли он дедупликацию и компрессию данных?
УдалитьВ standalone конфигурации vSAN отказоустойчивости нет, отказ любого накопителя cache tier приводит к потере всех данных, хранящихся на дисковой группе, отказ накопителя в capacity tier - к потере всех данных, которые на нем хранились.