Как посмотреть и изменить свойства датасета
Когда использовать
Когда вопрос касается конкретного диска виртуальной машины, а не пула целиком: какая на нём компрессия, сколько он занимает на самом деле, сколько места держат его снимки, включена ли дедупликация. Диск виртуальной машины лежит в датасете пула, и свойства ZFS читаются и правятся именно на уровне датасета.
Второй повод — сменить алгоритм компрессии у отдельного диска, не трогая остальные. Например, поднять степень сжатия на датасете с холодными данными.
Инструкция не подходит для изменения размера диска и для операций со снимками: это операции уровня виртуальной машины. Через свойства датасета их не заменить.
Предусловия
- чтение свойств — роль администратора ВЦОД (Виртуальный Центр Обработки Данных) и выше, и только для датасетов своего ВЦОД;
- правка свойств — та же роль администратора ВЦОД и выше, тоже внутри своего ВЦОД; глобальная роль работает с датасетами любого ВЦОД;
- в кластере включена фича
filesystem_options— без неё свойства датасета недоступны; - алгоритмы
zstdиzstd-fastдоступны, когда в кластере включена фичаzstd_enabled; - версия vStack Center — 3.0.5.
Шаги
Шаг 1. Откройте свойства датасета
- Откройте виртуальную машину: Virtual Data Centers → нужный ВЦОД → Virtual Machines → машина. Из кластера тот же список открывается пунктом All Virtual Machines.
- Прокрутите страницу машины до раздела Disks. Таблица показывает диски
машины:
Name,Slot,Disk size (GB),Sector size,IOps limit,MBps limit. - В строке нужного диска раскройте меню действий и выберите Filesystems.
Откроется форма свойств датасета этого диска. В шапке — GUID диска, дата создания и
полное имя датасета вида pool-a/vm-100-disk-0: по нему видно, в каком пуле лежит
диск.
Если пункта Filesystems в меню нет, в кластере выключена фича
filesystem_options.
Шаг 2. Прочитайте свойства
Форма собрана блоками.
| Блок | Что в нём |
|---|---|
| Size, Reservation | заявленный размер тома и резерв под него; у диска виртуальной машины размер из этой формы не меняется |
| Compression | алгоритм сжатия и его уровень, рядом значения Compressratio и Refcompressratio |
| Cache | Primarycache и Secondarycache — что кешируется |
| Прочие свойства | Checksum, Dedup, Copies, Logbias |
| Used | занятое место с разбивкой: Usedbydataset, Usedbychildren, Usedbyrefreservation, Usedbysnapshots, Logicalused |
| Остальные поля | Available, Refreservation, Referenced, Logicalreferenced, Written, Volblocksize |
Читайте форму так. Size — заявленный размер тома, то есть то, что видит гостевая система. Used — сколько датасет занимает в пуле сейчас, и оно меньше заявленного размера до тех пор, пока гость не записал весь диск. Usedbysnapshots показывает долю, которую держат снимки; сами снимки перечислены в разделе Snapshots страницы машины. Если диск в пуле «весит» больше, чем данные внутри гостя, разница почти всегда лежит в этих полях. Compressratio показывает, что дало сжатие.
Полный состав свойств датасета разобран в справочнике.
Шаг 3. Смените компрессию
- В блоке Compression выберите алгоритм:
on,off,lz4,gzip,lzjb,zle, а в кластере с включённой фичейzstd_enabled— ещёzstdиzstd-fast. - Для
gzip,zstdиzstd-fastзадайте уровень рядом с алгоритмом:gzip— от 1 до 9,zstd— от 1 до 19,zstd-fast— значение из своего набора. Меньшее значение означает быстрее, большее — плотнее. - Нажмите Apply. Кнопка активна только тогда, когда в форме есть изменения.
- Дождитесь уведомления о том, что файловая система изменена.
Отправляются только изменённые свойства, остальные форма не переписывает. Принадлежность датасета к ВЦОД проверяется до записи и до обращения к узлу: чужой датасет отклоняется на входе, изменения при этом не применяются нигде.
Смена компрессии действует вперёд: уже записанные блоки остаются в старом формате, новый алгоритм применяется к новой записи. Поэтому Compressratio после правки двигается постепенно, а не сразу.
Переключатель Readonly в этой же форме переводит датасет в режим только чтения. Рядом с ним стоит предупреждение о влиянии на производительность — это не косметика, а рабочее ограничение.
Проверка результата
Закройте форму и откройте Filesystems у того же диска снова.
Ожидаемо: в блоке Compression стоит новый алгоритм, полное имя датасета в шапке то же. Значение Compressratio в этот момент ещё отражает старые данные — это нормально.
Если не получилось
Пункта Filesystems в меню диска нет. В кластере выключена фича
filesystem_options; при обращении к API она отвечает кодом -87, «Filesystems
methods has not been enabled». Обхода нет: пока фича не включена, свойства датасета
недоступны.
Форма недоступна, поля заблокированы, кнопки Apply нет. Роли не хватает.
Чтение и правка свойств открыты администратору ВЦОД и выше; запрос без этого права
отклоняется с кодом -403, «Access denied». Пользователь ВЦОД получает -403 и на
чтение.
Форма не открывается, датасет не найден (-58 на чтении, -88 на записи,
«Dataset does not exist at users scope»). Датасет либо не существует, либо
принадлежит другому ВЦОД. Один ответ на два случая — это защита: существование
чужого датасета не раскрывается. Обход — проверьте, что открываете диск машины
своего ВЦОД; датасеты других ВЦОД доступны только глобальной роли.
Форма открылась, но свойства не пришли (-57 на чтении, -86 на записи, «param
guid has bad value»). Тот же ответ закрывает и негодный идентификатор диска, и
сбой связи с узлом. Обновите страницу машины и проверьте, отвечает ли узел, который
обслуживает пул этого датасета.
У строки датасета в базе пусто имя (-53 и -83, «Unable to locate the
dataset»). Строку датасета диспетчер нашёл, поле имени у неё пустое, и до узла
запрос не доходит. Удалённый диск отвечает кодом -58 или -88, потому что строки
в базе уже нет.
Пулу датасета не назначен обслуживающий узел (-54 и -84, «Unable to locate the
pool of the dataset»). Строку пула диспетчер нашёл, поле текущего узла у неё
пустое, и ретранслировать запрос некуда. Посмотрите Current node этого пула в
таблице ZFS pools. Как её открыть, разобрано в
«Как посмотреть пулы кластера».
См. также
- Пулы хранения — где датасет живёт и как считается ёмкость пула.
- Поля и коды ошибок методов хранения — полный состав свойств датасета и сводка кодов.
- Рост занятого места из-за снимков — в разделе «Диагностика».
Методы API
Операции этой страницы в API: filesystems-get, filesystems-set — см.
Справочник API.