Storage – ZFS Create

ZFS 스토리지를 생성(Create)하기 전에 노드의 Disks 메뉴에서 Disk 들이 잘 인식되어 있는지 확인합니다.

(1) 노드를 선택하고 Disks의 ZFS 메뉴를 선택합니다.
(2) Create: ZFS 단추를 클릭합니다.

(3) Name에 ZFS 풀(pool) 이름을 입력합니다.
(4) RAID Level을 선택합니다. 여러가지 유형을 지원합니다.
(5) Compression 을 설정합니다. 일반적으로 on 하고 사용합니다.
(6) ashift 값을 지정합니다.
(7) Device 목록에서 사용할 디스크를 선택합니다.
(8) Create 단추를 클릭합니다.

선택한 RAID Level과 선택한 디스크 수가 적절하지 않으면 그림과 같은 경고 문구가 나옵니다.

잠시 후에 그림과 같이 진행 상황을 알려주는 대화상자가 표시되고, 완료되면 자동으로 사라집니다.

ashift 값

ashift 값은 스토리지에 저장될 때 단위를 지정합니다. 이 값을 지정할 때는 2진법 단위인 것에 주의해야 합니다. 예를 들어 ashift = 12이면 2의 12승으로 4096을 의미합니다.

  • HDD의 경우에는 최근 많이 사용되는 4TB 이상의 섹터 크기는 4096B 입니다. 그래서 ashift = 12가 최적입니다.
  • SSD의 경우에는 (모델 마다 차이는 있으나) 섹터 크기가 보통 512B 입니다. 그래서 ashift = 9가 최적입니다.

Compression 기본값

Compression은 기본값으로 on이 설정되어 있습니다. 그리고 대화상자에서는 그림과 같은 항목을 선택할 수 있습니다.

그리고 CLI에서 man zfsprops를 해서 보면 아래와 같이 나옵니다. 정리해보면 기본 알고리즘은 lzjb 거나, lz4가 활성화되어 있으면 lz4_compress라고 나옵니다. 둘 중 하나란거죠???

     compression=on|off|gzip|gzip-N|lz4|lzjb|zle|zstd|zstd-N|zstd-fast|zstd-fast-N
       Controls the compression algorithm used for this dataset.

       When set to on (the default), indicates that the current default compression algorithm should be used.  The default balances compression and decompression
       speed, with compression ratio and is expected to work well on a wide variety of workloads.  Unlike all other settings for this property, on does not select a
       fixed compression type.  As new compression algorithms are added to ZFS and enabled on a pool, the default compression algorithm may change.  The current de‐
       fault compression algorithm is either lzjb or, if the lz4_compress feature is enabled, lz4.

       The lz4 compression algorithm is a high-performance replacement for the lzjb algorithm.  It features significantly faster compression and decompression, as well
       as a moderately higher compression ratio than lzjb, but can only be used on pools with the lz4_compress feature set to enabled.  See zpool-features(7) for de‐
       tails on ZFS feature flags and the lz4_compress feature.

       The lzjb compression algorithm is optimized for performance while providing decent data compression.

       The gzip compression algorithm uses the same compression as the gzip(1) command.  You can specify the gzip level by using the value gzip-N, where N is an inte‐
       ger from 1 (fastest) to 9 (best compression ratio).  Currently, gzip is equivalent to gzip-6 (which is also the default for gzip(1)).

       The zstd compression algorithm provides both high compression ratios and good performance.  You can specify the zstd level by using the value zstd-N, where N is
       an integer from 1 (fastest) to 19 (best compression ratio).  zstd is equivalent to zstd-3.

       Faster speeds at the cost of the compression ratio can be requested by setting a negative zstd level.  This is done using zstd-fast-N, where N is an integer in
       [1-10, 20, 30, …, 100, 500, 1000] which maps to a negative zstd level.  The lower the level the faster the compression — 1000 provides the fastest compression
       and lowest compression ratio.  zstd-fast is equivalent to zstd-fast-1.

       The zle compression algorithm compresses runs of zeros.

       This property can also be referred to by its shortened column name compress.  Changing this property affects only newly-written data.

       When any setting except off is selected, compression will explicitly check for blocks consisting of only zeroes (the NUL byte).  When a zero-filled block is de‐
       tected, it is stored as a hole and not compressed using the indicated compression algorithm.

       Any block being compressed must be no larger than 7/8 of its original size after compression, otherwise the compression will not be considered worthwhile and
       the block saved uncompressed.  Note that when the logical block is less than 8 times the disk sector size this effectively reduces the necessary compression ra‐
       tio; for example, 8 KiB blocks on disks with 4 KiB disk sectors must compress to 1/2 or less of their original size.

설명서가 명확하지는 않지만… 둘 중에 어느 값인지 알아보려면 ZFS를 만들고 CLI에서 아래와 같이 풀 정보를 조회해보면 됩니다.

root@pve-01:~# zpool get feature@lz4_compress RAIDZ2
NAME    PROPERTY              VALUE                 SOURCE
RAIDZ2  feature@lz4_compress  active                local
root@pve-01:~#

feature@lz4_compress의 VALUE가 active 이므로, RAIDZ2 풀의 현재 압축 알고리즘은 lz4(lz4_compress)로 설정되어 있는 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

VM – Network Device 추가하기

VM에 네트워크 디바이스(Network Device)를 추가하는 방법에 대해서 알아보도록 하겠습니다. (1) 네트워크 디바이스를 추가하고자 하는 VM을 선택합니다.(2) Virtual Machine…