Обновление 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 - к потере всех данных, которые на нем хранились.
Фактически мы говорим не о FreeNAS, а ZFS. Последняя - это по сути файловая система all-in-one: программный raid, снапшоты, репликация, кеширование, дедупликация (дорого по оперативной памяти) и компрессия lz4. ZFS всем хороша, но лично мне не нравится как в ней устроено кеширование записи + дорогая дедупликация. Как на меня, если бы не эти минусы, это была бы чуть ли не идеальная файловая система, на которой можно было бы делать очень достойные программные СХД.
УдалитьТо есть единственный способ получить какую-то отказоустойчивость - скармливать vSAN железный RAID-1? В этом плане ZFS, конечно, намного интереснее.