웹사이트 검색

RHEL 8의 스토리지 장치에 VDO 볼륨을 생성하는 방법


RHEL 7.5 이상에서 RedHat에 의해 도입된 Virtual Date Optimizer의 약자인 VDO는 다음을 제공하는 블록 가상화 기술입니다. 블록 장치 수준에서 데이터의 인라인 중복 제거 및 압축.

중복 제거의 개념은 매우 간단합니다. 중복된 데이터의 복사본을 제거하고 하나의 복사본만 유지하는 것입니다. 블록 디바이스에 동일한 파일이 추가되면 중복으로 표시하고 대신 원본 파일을 참조합니다. 이를 통해 VDO는 블록 볼륨의 공간을 절약하는 데 도움이 됩니다.

이 튜토리얼에서는 RHEL 8 시스템의 저장 장치에 VDO 볼륨을 생성하는 방법을 배웁니다.

1단계: RHEL 8에 VDO 설치

시작하려면 서버에 로그인하고 dnf 명령을 사용하여 RHEL을 업데이트하세요.

sudo dnf update -y

패키지 및 커널 업데이트가 완료되면 명령을 사용하여 VDO 커널 모듈 및 종속성을 설치합니다.

sudo dnf install kmod-kvdo vdo
  • vdo – Virtual Data Optimizer용 관리 도구 세트입니다.
  • kmod-kvdo – Virtual Data Optimizer용 커널 모듈 그룹입니다.

성공적으로 설치한 후 vdo 데몬을 시작하고 활성화하고 확인합니다.

sudo systemctl start vdo
sudo systemctl enable vdo
sudo systemctl status vdo

2단계: RHEL 8에서 VDO 볼륨 생성

vdo 볼륨을 만들기 전에 시스템에 추가 하드 드라이브가 있는지 확인하세요. 이 튜토리얼에서는 xvdb 볼륨을 추가로 연결했습니다. 이는 아래의 lsblk 명령을 실행하여 확인할 수 있습니다.

lsblk

출력에서 두 번째 디스크의 용량이 100GB임을 확실히 알 수 있습니다.

이제 /dev/xvdb 디스크에 빈 VDO 볼륨을 생성하겠습니다.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

표시된 오류가 발생합니다.

이는 일반적인 버그이며 해결 방법은 간단히 서버를 재부팅하는 것입니다.

sudo reboot

두 번째 시도에서는 명령이 실행되어 /dev/xvdb 장치에 빈 VDO 볼륨이 생성됩니다.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

명령을 분석하고 사용된 옵션을 살펴보겠습니다.

  • create – VDO 볼륨 생성이 시작됩니다.
  • –name=vdo1 – 볼륨에 vdo1이라는 라벨을 지정합니다. 원하는 이름을 자유롭게 지정해 보세요.
  • –device=/dev/xvdb – 장치 옵션은 볼륨이 생성될 디스크를 지정합니다.
  • –vdoLogicalSize=300G – 운영 체제에서 사용할 유효 볼륨 용량을 나타냅니다(이 경우 300G).

3단계: 새 VDO 볼륨 조사

이전 단계에서 본 출력에 따라 새 VDO 볼륨이 /dev/mapper/vdo1에 생성되었습니다. 표시된 대로 ls 명령을 사용하여 파일 권한 및 소유권을 조사할 수 있습니다.

ls -l /dev/mapper/vdo1

보다 통찰력 있는 정보를 얻으려면 vdostats 명령을 사용하여 볼륨 크기 및 사용량에 대한 통계를 검색하세요.

vdostats --hu

--hu 플래그는 사람이 읽을 수 있는 형식, 즉 훨씬 더 읽기 쉽고 쉽게 해독할 수 있는 형식으로 정보를 표시합니다. 장치 이름, 추가 디스크의 크기, 사용된 공간 및 사용 가능한 공간과 같은 속성을 % 사용량으로 볼 수 있습니다.

% 절약이 해당 사항 없음(N/A)로 표시되는지 주의 깊게 관찰하세요.

또한 이미 일부 볼륨 사용량이 4.1G(4%로 해석됨) 있지만 볼륨에 아무 것도 기록하지 않았습니다. 왜 그런 겁니까? 이는 범용 중복 제거가 이미 디스크에 기록되어 중복 제거가 가능하기 때문입니다.

vdostats 명령을 --verbose 플래그와 함께 사용하면 다음과 같이 더 자세한 정보를 검색할 수 있습니다.

sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 ‘saving percent’

볼 수 있는 것은 기본적으로 이전 예와 동일한 데이터이지만 형식이 다릅니다.

4단계: VDO 볼륨 분할

볼륨에서 충분한 통찰력을 얻은 후에는 파티션을 나누고 나중에 일반 디스크로 사용할 수 있도록 파일 시스템을 만들어야 합니다.

그림과 같이 물리 볼륨과 볼륨 그룹을 생성하고 다음 명령을 실행해 보겠습니다.

sudo pvcreate /dev/mapper/vdo1
sudo vgcreate vdo1vg /dev/mapper/vdo1

볼륨 그룹의 통계를 표시하려면 다음을 실행하십시오.

sudo vgdisplay vdo1vg

이제 각각 50G 용량을 갖는 동일한 크기의 논리 볼륨 2개를 생성하겠습니다.

sudo lvcreate -n vdo1v01 -L 50G vdo1vg
sudo lvcreate -n vdo1v02 -L 50G vdo1vg

나중에 명령을 실행하여 새로 생성된 볼륨의 상태를 볼 수 있습니다.

sudo lvs

4단계: 파일 시스템 포맷 및 마운트

일반적으로 파일 시스템이 생성되면 장치에서 트림 작업이 수행됩니다. 이는 VDO의 경우 바람직하지 않습니다. mkfs 명령을 사용하여 포맷할 때 -K 옵션을 사용하여 파일 시스템 생성 중에 블록을 삭제하지 않도록 명령에 지시합니다.

sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v01
sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v02

EXT$ 파일 시스템을 사용하는 경우 “-E nodiscard” 옵션을 사용하세요.

볼륨을 마운트하기 위한 마운트 지점을 만듭니다.

sudo mkdir /data/v01
sudo mkdir /data/v02

이제 표시된 대로 파일 시스템을 마운트 지점에 마운트합니다.

sudo mount -o discard /dev/vdo1vg/vdo1v01  /data/v01
sudo mount -o discard /dev/vdo1vg/vdo1v02  /data/v02

이제 VDO 볼륨을 검사하면 % 절약이 99%로 변경된 것을 확인할 수 있는데 이는 매우 인상적입니다. 이는 중복 제거가 예상대로 작동하고 있음을 의미합니다.

sudo vdostats --hu

df -Th 명령을 사용하여 더 자세히 조사할 수 있습니다. 하단 섹션에는 각각 /data/v01/data/v02에 마운트된 파일 시스템이 표시됩니다.

df -hT

이 튜토리얼에서는 RHEL 8의 추가 저장 장치에서 VDO 볼륨을 생성하는 방법을 시연했습니다. 나중에 더 많은 볼륨을 생성하고 해당 볼륨에서 파일 시스템을 생성하는 방법을 시연했습니다.