ZFS 풀을 암호화하는 방법은 무엇입니까?

ZFS 풀을 암호화하는 방법은 무엇입니까?

tank머리말: 저는 원래 풀을 생성했던 곳인 TrueNAS(SCALE)를 실행하곤 했습니다 .

Ubuntu 서버에서 새로 생성된 풀의 키를 할당/변경하려고 하는데 다음 오류가 발생합니다 Key change error: Dataset not encrypted..

user@homeserver:~$ sudo zfs change-key -o keylocation=file:///path/to/zpool.key -o keyformat=raw flash
Key change error: Dataset not encrypted.

user@homeserver:~$ zfs get encryption tank 
NAME  PROPERTY    VALUE        SOURCE
tank  encryption  aes-256-gcm  -

user@homeserver:~$ zfs get encryption flash
NAME   PROPERTY    VALUE        SOURCE
flash  encryption  off          default

풀을 생성할 때 사용하는 명령은 다음과 같습니다.

sudo zpool create -o failmode=continue -o autoexpand=on -o autotrim=on -o feature@async_destroy=enabled -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled -o feature@multi_vdev_crash_dump=enabled -o feature@spacemap_histogram=enabled -o feature@enabled_txg=enabled -o feature@hole_birth=enabled -o feature@extensible_dataset=enabled -o feature@embedded_data=enabled -o feature@bookmarks=enabled -o feature@filesystem_limits=enabled -o feature@large_blocks=enabled -o feature@large_dnode=enabled -o feature@sha512=enabled -o feature@skein=enabled -o feature@edonr=enabled -o feature@userobj_accounting=enabled -o feature@encryption=enabled -o feature@project_quota=enabled -o feature@device_removal=enabled -o feature@obsolete_counts=enabled -o feature@zpool_checkpoint=enabled -o feature@spacemap_v2=enabled -o feature@allocation_classes=enabled -o feature@resilver_defer=enabled -o feature@bookmark_v2=enabled -o feature@redaction_bookmarks=enabled -o feature@redacted_datasets=enabled -o feature@bookmark_written=enabled -o feature@log_spacemap=enabled -o feature@livelist=enabled -o feature@device_rebuild=enabled -o feature@zstd_compress=enabled -o feature@draid=enabled flash mirror /dev/disk/by-partuuid/XXX /dev/disk/by-partuuid/XXX

내가 뭘 잘못하고 있고 어떻게 flash같은 방식으로 암호화할 수 있나요 tank?

답변1

기본 ZFS 암호화는 풀을 암호화하지 않고 파일 시스템만 암호화합니다. 또한 파일 시스템을 생성할 때 각 파일 시스템의 암호화를 설정해야 합니다. 풀의 루트 파일 시스템의 경우 이는 풀이 생성될 때 루트 파일 시스템의 암호화가 설정되어야 함을 의미합니다.

따라서 기존 풀과 유사한 방식으로 암호화된 루트 파일 시스템을 사용하여 새 풀을 생성하려면 먼저 새 풀을 삭제해야 합니다.

# zpool destroy flash

zpool create그런 다음 위 명령을 추가 옵션과 병합하여 풀을 다시 만듭니다 . 자본 사용에 주의하세요 -O.

# zpool create \
    (your options from above) \
    -O encryption=on \
    -O keyformat=(whatever) \
    -O keylocation=(whatever) \
    flash \
    mirror /dev/gpt/diskA-serial-num /dev/gpt/diskB-serial-num

마지막으로 확인:

# zfs get encryption,keyformat,keylocation flash
NAME   PROPERTY     VALUE        SOURCE
flash  encryption   aes-256-gcm  -
flash  keyformat    (whatever)   -
flash  keylocation  (whatever)   local

관련 정보