공부합시다!/LInux

Rocky9: Stratis

간서치 2023. 1. 26. 00:14
728x90

새로운 기술들이 나오면 또 따라가야겠죠!

오늘은 따끈한 Storage 관리 기술인 Stratis 입니다.

Red Hat과 Fedora Community 에서 공동 개발한 기술인데 Thin Provisioning과 snapshot을 지원한다고 합니다.

1. Stratis 개요

2. Stratis 특징

3. Stratis 관리

순서로 살펴보도록 하겠습니다.

 

아래 그림은 Storage Stack 입니다. 좌측이 아래쪽, 우측이 위쪽이라 생각하세요

Storage Stack

 

 

Stratis Arch

 

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!

728x90