웹사이트 검색

RHEL 8에서 계층화된 로컬 스토리지를 관리하기 위해 Stratis를 설치하는 방법


StratisRHEL 8 배포와 함께 제공되는 새로운 기능 중 하나입니다. Stratis는 단순성과 향상된 유용성에 초점을 맞추는 동시에 고급 스토리지 기능에 대한 액세스를 제공하는 로컬 스토리지 관리 솔루션입니다. XFS 파일 시스템을 사용하며 다음과 같은 고급 스토리지 기능에 대한 액세스 권한을 부여합니다.

  • 씬 프로비저닝
  • 파일 시스템 스냅샷
  • 계층화
  • 풀 기반 관리
  • 모니터링

기본적으로 Stratis는 하나 이상의 로컬 디스크 또는 디스크 파티션에서 생성되는 스토리지 풀입니다. Stratis는 시스템 관리자가 복잡한 스토리지 구성을 설정하고 관리하는 데 도움을 줍니다.

더 진행하기 전에, 진행하면서 마주칠 수밖에 없는 몇 가지 기술 용어를 살펴보겠습니다.

  • : 풀은 하나 이상의 블록 장치로 구성됩니다. 풀의 전체 크기는 블록 장치의 합계와 같습니다.
  • blockdev: 짐작하셨겠지만 이는 디스크 파티션과 같은 블록 장치를 나타냅니다.
  • 파일 시스템: 파일 시스템은 전체적으로 고정된 크기로 제공되지 않는 씬 프로비저닝된 레이어입니다. 파일 시스템의 실제 크기는 데이터가 추가됨에 따라 증가합니다. Stratis는 데이터 크기가 파일 시스템의 가상 크기에 가까워짐에 따라 파일 시스템의 크기를 자동으로 늘립니다.

Stratis와 함께 사용할 수 있는 블록 장치는 다음과 같습니다.

  1. LVM 논리 볼륨
  2. 루크스
  3. SSD(솔리드 스테이트 드라이브)
  4. 장치 매퍼 다중 경로
  5. iSCSI
  6. HDD(하드 디스크 드라이브)
  7. mdraid
  8. NVMe 저장 장치

Stratis의 소프트웨어 구성 요소

Stratis는 2가지 소프트웨어 유틸리티를 제공합니다.

  • Stratis-cli: Stratis와 함께 제공되는 명령줄 도구입니다.
  • Stratisd 데몬: 블록 디바이스를 생성 및 관리하는 데몬으로, DBUS API를 제공하는 역할을 한다.

RHEL 8에 Stratis를 설치하는 방법

Stratis가 무엇인지 살펴보고 몇 가지 용어를 정의했습니다. 이제 RHEL 8 배포판에 Stratis를 설치하고 구성해 보겠습니다(CentOS 8에서도 작동함).

RHEL 8에 Stratis 설치

RHEL 8 시스템에 Stratis를 설치하고 루트 사용자로 로그인하여 명령을 실행하는 방법을 살펴보겠습니다.

dnf install stratisd stratis-cli

설치된 패키지에 대한 자세한 정보를 찾으려면 명령을 실행하십시오.

rpm -qi stratisd stratis-cli

Stratis가 성공적으로 설치되면 명령을 실행하여 서비스를 시작합니다.

systemctl enable --now stratisd

Stratis의 상태를 확인하려면 명령어를 실행하세요.

systemctl status stratisd

Stratis 풀 생성

Stratis 풀을 생성하려면 사용 중이 아니거나 마운트되지 않은 블록 장치가 필요합니다. 또한 Stratisd 서비스가 실행 중이라고 가정합니다. 또한 사용하려는 블록 장치의 크기는 최소 1GB 이상이어야 합니다.

RHEL 8 시스템에는 4개의 추가 블록 장치가 있습니다: /dev/xvdb, /dev/xvdc, /dev/ xvdd, /dev/xvde. 블록 장치를 표시하려면 lsblk 명령을 실행하십시오.

lsblk

이러한 블록 장치에는 파티션 테이블이 있어서는 안 됩니다. 명령을 사용하여 이를 확인할 수 있습니다.

blkid -p /dev/xvdb

출력이 없으면 블록 장치에 파티션 테이블이 없다는 의미입니다. 그러나 파티션 테이블이 존재하는 경우 다음 명령을 사용하여 이를 지울 수 있습니다.

wipefs -a /<device-path>

원 블록 장치에서 Stratis 풀 생성

구문을 사용하여 단일 블록 장치에서 Stratis 풀을 생성할 수 있습니다.

stratis pool create <pool-name> <block-device>

예를 들어 /dev/xvdb에서 풀을 생성하려면 명령을 실행하세요.

stratis pool create my_pool_1 /dev/xvdb

생성된 풀을 확인하려면 실행하세요.

stratis pool list

여러 블록 장치에서 Stratis 풀 생성

여러 장치에서 풀을 생성하려면 아래 구문을 사용하여 모든 장치를 한 줄에 나열하십시오.

stratis pool create <pool_name> device-1 device-2 device-n

/dev/xvdc에서 풀을 생성하려면 /dev/xvdd/dev/xvde 명령을 실행합니다.

stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde

다시 한번 명령을 사용하여 사용 가능한 풀을 나열하십시오.

stratis pool list

이제 my_pool_1my_pool_2라는 2개의 풀이 있어야 합니다.

위에서 볼 수 있듯이 my_pool_2 풀이 차지하는 하드 디스크 공간은 메모리가 10GB인 하나의 블록 장치에서만 생성한 첫 번째 풀의 3배입니다.

풀에서 파일 시스템 생성

파일 시스템을 생성한 후 구문을 사용하여 풀 중 하나에서 파일 시스템을 생성할 수 있습니다.

stratis fs create <poolname> <filesystemname>

예를 들어, my_pool_1my_pool_2에서 각각 filesystem-1filesystem-2를 생성하려면 다음 명령을 실행합니다.

stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2

새로 생성된 파일 시스템을 보려면 명령을 실행합니다.

stratis fs list

파일 시스템 결과를 하나의 풀로 좁히려면 다음 명령을 실행합니다.

stratis fs list <poolname>

예를 들어 my_pool_2의 파일 시스템을 확인하려면 다음 명령을 실행하세요.

stratis fs list my_pool_2

이제 lsblk 명령을 실행하면 출력이 아래 샘플 출력과 다소 유사해야 합니다.

lsblk

Stratis 파일 시스템 마운트

이제 기존 파일 시스템에 액세스하기 위해 마운트하겠습니다. 먼저 마운트 지점을 만듭니다.

첫 번째 풀의 파일 시스템에 대해 다음 명령을 실행합니다.

mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data

두 번째 풀의 두 번째 파일 시스템에 대해 명령을 실행합니다.

mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block

현재 마운트 지점이 있는지 확인하려면 df 명령을 실행하세요.

df -Th | grep  stratis

완벽한! 마운트 지점이 존재하는 것을 명확하게 볼 수 있습니다.

Stratis 파일 시스템을 지속적으로 마운트

방금 생성한 마운트 지점은 재부팅 후에도 유지되지 않습니다. 이를 지속적으로 만들려면 먼저 각 파일 시스템의 UUID를 획득하세요.

blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2

이제 표시된 대로 UUID 및 마운트 지점 옵션을 /etc/fstab에 복사하세요.

echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab

시스템이 새 구성을 등록하려면 다음 명령을 실행하십시오.

systemctl daemon-reload

구성이 예상대로 작동하는지 확인하려면 파일 시스템을 마운트합니다.

mount /data
mount /block

Stratis 파일 시스템 제거

파일 시스템을 제거하려면 먼저 표시된 대로 파일 시스템을 마운트 해제해야 합니다.

umount /mount-point

이 경우에는 다음과 같습니다.

umount /data

파일 시스템을 파괴하려면 다음 구문을 사용하십시오.

stratis filesystem destroy <poolname> <filesystem-name>

따라서 우리는 다음을 갖게 됩니다:

stratis filesystem destroy my_pool_1 filesystem-1

파일 시스템 제거를 확인하려면 명령을 실행하십시오.

stratis filesystem list my_pool_1

출력에서 my_pool_1과 관련된 파일 시스템이 삭제되었음을 분명히 알 수 있습니다.

기존 Stratis 풀에 디스크 추가

다음 명령을 사용하여 기존 풀에 디스크를 추가할 수 있습니다.

stratis pool add-data <poolname> /<devicepath>

예를 들어 my_pool_1에 추가 디스크 /dev/xvdf를 추가하려면 다음 명령을 실행합니다.

stratis pool add-data my_pool_1 /dev/xvdf

추가 볼륨을 추가한 후 my_pool_1의 크기가 두 배로 커졌습니다.

Stratis 스냅샷 생성

스냅샷은 씬 프로비저닝된 읽기이며 특정 시점에 파일 시스템의 복사본을 씁니다.

스냅샷을 생성하려면 다음 명령어를 실행하세요.

stratis fs snapshot <poolname> <fsname> <snapshotname>

이 경우 명령은 다음과 같습니다.

stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

아래 스크린샷에 표시된 대로 데이터 속성 -$ (date +%Y-%m-%d)를 스냅샷에 추가하고 날짜 태그를 추가할 수 있습니다.

스냅샷 생성을 확인하려면 다음 명령을 실행합니다.

stratis filesystem list <poolname>

이 경우 명령은 다음과 같습니다.

stratis filesystem list my_pool_2

파일 시스템을 사용하여 이전 스냅샷으로 되돌리기

Stratis 파일 시스템을 이전에 생성된 스냅샷으로 되돌리려면 먼저 원본 파일 시스템을 마운트 해제하고 삭제하세요.

umount /stratis/<poolname>/filesystem

우리 시나리오에서는 이것이 될 것입니다.


umount /stratis/my_pool_2/filesystem-2

그런 다음 원본 파일 시스템을 사용하여 스냅샷의 복사본을 만듭니다.

stratis filesystem snapshot <poolname> filesystem-snapshot filesystem

명령은 다음과 같습니다:

stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block

마지막으로 스냅샷을 마운트합니다.

mount /stratis/my-pool/my-fs mount-point

Stratis 스냅샷 제거

스냅샷을 제거하려면 먼저 스냅샷을 마운트 해제합니다.

unmount /stratis/my_pool_2/mysnapshot-2019-10-24

다음으로 스냅샷을 진행하고 삭제합니다.

stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

Stratis 풀 제거

Stratis 풀을 제거하려면 아래의 간단한 단계를 따르십시오.

1. 풀에 존재하는 파일 시스템을 나열합니다.

stratis filesystem list <poolname>

2. 다음으로 풀의 모든 파일 시스템을 마운트 해제합니다.

umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3

3. 파일 시스템을 파괴합니다.

stratis filesystem destroy <poolname> fs-1 fs-2

4. 그리고 수영장을 없애세요.

stratis pool destroy poolname

이 경우 구문은 다음과 같습니다.

stratis pool destroy my_pool_2

풀 목록을 다시 확인할 수 있습니다.

stratis pool list

마지막으로 파일 시스템에 대한 /etc/fstab에서 항목을 제거합니다.

이제 가이드가 끝났습니다. 이 튜토리얼에서는 Stratis를 설치하고 사용하여 RHEL에서 계층화된 로컬 스토리지를 관리하는 방법을 설명합니다. 이 정보가 도움이 되셨기를 바랍니다. 한번 시도해 보고 어떻게 되었는지 알려주세요.