Rocky9: Stratis
새로운 기술들이 나오면 또 따라가야겠죠!
오늘은 따끈한 Storage 관리 기술인 Stratis 입니다.
Red Hat과 Fedora Community 에서 공동 개발한 기술인데 Thin Provisioning과 snapshot을 지원한다고 합니다.
1. Stratis 개요
2. Stratis 특징
3. Stratis 관리
순서로 살펴보도록 하겠습니다.
아래 그림은 Storage Stack 입니다. 좌측이 아래쪽, 우측이 위쪽이라 생각하세요
1. Stratis 개요
1.1. Red Hat 과 Fedora Community에서 개발한 Local Storage Management Tool
1.2. Storage 초기 구성, Storage 구성 변경, 고급 Storage 기능 사용 용이
2. Stratis 특징
2.1. 물리적 Storage 장치를 Pool로 관리하는 Service로 실행
2.2. Thin Provisioning 사용하여 Disk Device를 공유 Pool 내에서 File System 생성
2.3. File System 생성 시 물리적 Storage 공간을 할당하는 대신, File System에서 추가 Data저장 시 Pool에서 공간을 동적으로 할당
2.4. File System의 크기가 1TiB로 표시가 되더라도 Pool에서 실제로 할당된 크기는 100GiB뿐일 수 있음.
2.5. 다양한 Storage Device에서 여러 개의 Pool 생성, 각 Pool에서 하나 이상의 File System 생성 가능, 최대 2*24승
2.6. stratis 관리 파일 시스템을 구성하나는 구성 요소를 표준 Linux 구성 요소에서 빌드
2.7. 내부적으로 LVM에서 사용하는 Device Mapper Infra 사용, 파일시스템은 XFS로 포맷
3. Stratis 관리
3.1. stratis 설치 및 활성화
# dnf install -y stratisd stratis-cli
# systemctl enable --now stratisd
3.2. stratis pool 생성
# lsblk
# stratis pool create sdkim /dev/sdb
sdkim이라는 pool을 생성하는데 /dev/sdb 사용
# stratis pool list
pool list 확인
# stratis pool add-data sdkim /dev/sdc
sdkim이라는 pool에 /dev/sdc 추가
3.3. stratis file system 생성 및 snapshot, mount
# stratis filesystem create sdkim fs1
sdkim pool에 fs1 파일스템 생성
# stratis filesystem list
Pool Filesystem Total / Used / Free Created Device UUID
sdkim fs1 1 TiB / 546 MiB / 1023.47 GiB Jan 21 2023 00:59 /dev/stratis/sdkim/fs1 a021d9be-dcff-4998-83cc-9343e49c4a04
파일 시스템 확인
# mkdir /stra
# mount /dev/stratis/sdkim/fs1 /stra
디렉토리 생성 후 stratis 파일 시스템 마운트
# echo 'stratis test' > /stra/test.txt
# cat /stra/test.txt
stratis test
# stratis filesystem snapshot sdkim fs1 snap
fs1 파일 시스템의 snapshot을 snap라는 이름으로 생성
# stratis filesystem list
Pool Filesystem Total / Used / Free Created Device UUID
sdkim fs1 1 TiB / 546 MiB / 1023.47 GiB Jan 21 2023 00:59 /dev/stratis/sdkim/fs1 a021d9be-dcff-4998-83cc-9343e49c4a04
sdkim snap 1 TiB / 546 MiB / 1023.47 GiB Jan 21 2023 01:01 /dev/stratis/sdkim/snap 967cf392-db5a-43b5-8584-8cb820fa569a
snap 파일시스템 확인
# mkdir /strasnap
# mount /dev/stratis/sdkim/snap /strasnap
snap 파일시스템 마운트
# cat /strasnap/test.txt
stratis test
마운트 테스트
# dd if=/dev/zero of=/stra/stra.txt bs=1MB count=500
500+0 records in
500+0 records out
500000000 bytes (500 MB, 477 MiB) copied, 3.04332 s, 164 MB/s
# stratis filesystem list
Pool Filesystem Total / Used / Free Created Device UUID
sdkim fs1 1 TiB / 1023 MiB / 1023.00 GiB Jan 21 2023 00:59 /dev/stratis/sdkim/fs1 a021d9be-dcff-4998-83cc-9343e49c4a04
sdkim snap 1 TiB / 546 MiB / 1023.47 GiB Jan 21 2023 01:01 /dev/stratis/sdkim/snap 967cf392-db5a-43b5-08584-8cb820fa569a
디스크 사용량에 따른 동적확장 확인
3.4. stratis file system 영구 mount
# stratis pool create sdkim /dev/sdb
# stratis filesystem create sdkim fs1
# stratis filesystem list
UUID 확인
# vi /etc/fatab
UUID=f3638957-ca1e-49fb-b8ea-6f03699e67d2 /stra xfs default,x-systemd.requires=stratisd.service 0 0
3.5. stratis file system 및 pool 삭제
# umount /stra /strasnap
# stratis filesystem destroy sdkim snap
# stratis filesystem list
Pool Filesystem Total / Used / Free Created Device UUID
sdkim fs1 1 TiB / 1023 MiB / 1023.00 GiB Jan 21 2023 00:59 /dev/stratis/sdkim/fs1 a021d9be-dcff-4998-83cc-9343e49c4a04
# stratis filesystem destroy sdkim fs1
# stratis filesystem list
Pool Filesystem Total / Used / Free Created Device UUID
파일시스템 삭제
# stratis pool destroy sdkim
# stratis pool list
Name Total / Used / Free Properties UUID Alerts
pool 삭제
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─rl-root 253:0 0 47G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
sr0 11:0 1 1.4G 0 rom
3.6. file system 관련 error 해결
3.6.1. stratis pool 생성 시 이전 file system의 흔적이 남아 있으면 오류가 발생합니다. 삭제하세요.
3.6.2. # wipefs -a /dev/sdb
# stratis pool add-data sdkim /dev/sdd
Execution failed:
stratisd failed to perform the operation that you requested.
It returned the following information via the D-Bus: ERROR: At least one of the devices
specified was unsuitable for initialization: udev information indicates that
device /dev/sdd is a block device which appears to be owned.
[root@master ~]# wipefs -a /dev/sdd
/dev/sdd: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sdd: 8 bytes were erased at offset 0x13ffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/sdd: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdd: calling ioctl to re-read partition table: Success
[root@master ~]# stratis pool add-data sdkim /dev/sdd
[root@master ~]# stratis pool list
Name Total / Used / Free Properties UUID Alerts
sdkim 20 GiB / 526.02 MiB / 19.49 GiB ~Ca,~Cr, Op 02a8dae4-6d55-49c8-b4b7-56480cec58e7
새로운 기술인데 아주 유연하게 동작을 합니다.
여러 종류의 Device를 통합해서 사용하기에 좋은 기술로 보여지네요!
그럼
Have a nice day!