Skip to content

12.6.5 Файловая система

ZFS датасеты:

Таблица 1. ZFS датасеты
Свойства Значение Тип
guid 14,095,423,526,248,607,256 GUID
available 940,288,429,558 int64
checksum on int64
compression lz4 int64
compressratio 100 int64
copies 1 int64
creation 1,701,597,051 int64
dedup off int64
logbias latency int64
logicalreferenced 1,613,275,136 int64
logicalused 28,672 int64
objsetid 25,920 int64
primarycache all int64
readonly off int64
refcompressratio 185 int64
referenced 1,057,028,832 int64
refreservation 0 int64
reservation 0 int64
used 101,808 int64
usedbychildren 0 int64
usedbydataset 101,808 int64
usedbyrefreservation 0 int64
usedbysnapshots 0 int64
volblocksize 32,768 int64
volsize 39,728,447,488 int64
written 101,808 int64

Изменения свойств существующего датасета не означает изменения в отношении данных, хранящихся в этом датасете.

Если к моменту включения компрессии у нас уже было записано 512GB данных, то это не означает, что эти существующие 512GB данных подвергнутся компрессии.

Некоторые свойства могут принимать значения не произвольного формата, а только из «словаря» (определенного набора значений).

Варианты значений для свойства checksum представляют собой алгоритмы контрольных сумм, используемых для проверки целостности:

  • on;
  • off;
  • fletcher2;
  • fletcher4;
  • sha256;
  • noparity;
  • sha512;
  • skein;
  • edonr.

Значение on в данный момент тождественно значению fletcher4.

Варианты значений для свойства compression представляют собой алгоритмы сжатия:

  • on;
  • off;
  • gzip;
  • gzip-N;
  • lz4;
  • lzjb;
  • zle;
  • zstd;
  • zstd-N;
  • zstd-fast;
  • zstd-fast-N.

Значение on в данный момент тождественно значению lz4.

Алгоритмы, имеющие в своем имени цифровой фактор N, имеют дискретность результата, обусловленную этим фактором.

Для gzip диапазон этого фактора: 1 (самое быстрое сжатие) - 9 (самое эффективное сжатие).

Для zstd диапазон этого фактора: 1 (самое быстрое сжатие) - 19 (самое эффективное сжатие).

В силу семантики имени алгоритма zstd-fast-N значения фактора имеют обратный смысл: 1 (самое эффективное сжатие) - 1000 (самое быстрое сжатие). Сами значения при этом являются не произвольным числом, а одним из чисел, входящих в множество [1-9, 10, 20, 30, ..., 100, 500, 1000].

Варианты значений для свойства dedup представляют собой алгоритмы контрольных сумм, используемых для дедупликации:

  • on;
  • off;
  • verify;
  • sha256;
  • sha512;
  • skein;
  • edonr.

Значение on в данный момент тождественно значению fletcher4.

Варианты значений для свойства primarycache:

  • all;
  • metadata;
  • none.

Методы

12.6.5.1. filesystems-get

Метод для получения свойств объекта ZFS датасета. Параметр cluster_id является опциональным. Если cluster_id указан - запрос будет выполнен на конкретном кластере, если отсутствует - на всех кластерах ГИ.

Запрос:

{
        "jsonrpc":      "2.0",
        "method":       "filesystems-get",
        "id":           "1ccca298-c822-11ea-b43f-e7f855bcd16b",
        "params": {
            "cluster_id":   "579bfe88-82cd-40a5-a124-3adeaa0a3a18",
            "guid":         12307168579286764760
        }
}

Ответ:

{
   "id" : "1ccca298-c822-11ea-b43f-e7f855bcd16b",
   "jsonrpc" : "2.0",
   "result" : {
        "code" : 1,
        "data" : {
            "properties" : {
                "available" : 940288429558,
                "checksum" : "on",
                "compression" : "lz4",
                "compressratio" : 100,
                "context" : "none",
                "copies" : "1",
                "createtxg" : 11438660,
                "creation" : 1701597051,
                "dedup" : "off",
                "defcontext" : "none",
                "encryption" : "off",
                "fscontext" : "none",
                "guid" : 12307168579286764760,
                "inconsistent" : 0,
                "keyformat" : "none",
                "keylocation" : "none",
                "logbias" : "latency",
                "logicalreferenced" : 1613275136,
                "logicalused" : 28672,
                "mlslabel" : "none",
                "name" : "z01/.vm_V4/000034243/disk_000000000",
                "objsetid" : 25920,
                "pbkdf2iters" : 0,
                "pbkdf2salt" : 0,
                "primarycache" : "all",
                "readonly" : "off",
                "redacted" : 0,
                "redundant_metadata" : "all",
                "refcompressratio" : 185,
                "referenced" : 1057028832,
                "refreservation" : 0,
                "reservation" : 0,
                "rootcontext" : "none",
                "secondarycache" : "all",
                "snapdev" : "hidden",
                "snapshot_count" : 18446744073709551615,
                "snapshot_limit" : 18446744073709551615,
                "unique" : 101808,
                "used" : 101808,
                "usedbychildren" : 0,
                "usedbydataset" : 101808,
                "usedbyrefreservation" : 0,
                "usedbysnapshots" : 0,
                "useraccounting" : 0,
                "volblocksize" : 32768,
                "volsize" : 39728447488,
                "written" : 101808
            }
        }
   }
}

12.6.5.2. filesystems-set

Метод для изменения свойств объекта ZFS датасета.

Параметр cluster_id является опциональным. Если cluster_id указан - запрос будет выполнен на конкретном кластере, если отсутствует - на всех кластерах ГИ.

Запрос:

{
        "jsonrpc":      "2.0",
        "method":       "filesystems-set",
        "id":           "1ccca298-c822-11ea-b43f-e7f855bcd16b",
        "params": {
            "cluster_id":   "579bfe88-82cd-40a5-a124-3adeaa0a3a18",
            "guid":         "12307168579286764760",
            "properties": {
                    "compression": "lz4"
            }
        }
}

Ответ:

{
   "id" : "1ccca298-c822-11ea-b43f-e7f855bcd16b",
   "jsonrpc" : "2.0",
   "result" : {
        "code" : 1,
        "data" : {
            "properties" : {
                "available" : 940288429558,
                "checksum" : "on",
                "compression" : "lz4",
                "compressratio" : 100,
                "context" : "none",
                "copies" : "1",
                "createtxg" : 11438660,
                "creation" : 1701597051,
                "dedup" : "off",
                "defcontext" : "none",
                "encryption" : "off",
                "fscontext" : "none",
                "guid" : 12307168579286764760,
                "inconsistent" : 0,
                "keyformat" : "none",
                "keylocation" : "none",
                "logbias" : "latency",
                "logicalreferenced" : 1613275136,
                "logicalused" : 28672,
                "mlslabel" : "none",
                "name" : "z01/.vm_V4/000034243/disk_000000000",
                "objsetid" : 25920,
                "pbkdf2iters" : 0,
                "pbkdf2salt" : 0,
                "primarycache" : "all",
                "readonly" : "off",
                "redacted" : 0,
                "redundant_metadata" : "all",
                "refcompressratio" : 185,
                "referenced" : 1057028832,
                "refreservation" : 0,
                "reservation" : 0,
                "rootcontext" : "none",
                "secondarycache" : "all",
                "snapdev" : "hidden",
                "snapshot_count" : 18446744073709551615,
                "snapshot_limit" : 18446744073709551615,
                "unique" : 101808,
                "used" : 101808,
                "usedbychildren" : 0,
                "usedbydataset" : 101808,
                "usedbyrefreservation" : 0,
                "usedbysnapshots" : 0,
                "useraccounting" : 0,
                "volblocksize" : 32768,
                "volsize" : 39728447488,
                "written" : 101808
            }
        }
   }
}