공유할 서비스 선택

TECH


TECH

OS [Storage / Filesystem] VDO(Virtual Data Optimizer)란 무엇인가?

페이지 정보

작성자 osgusu 아이디로 검색 전체게시물 댓글 0건 조회 528회 좋아요 0회 작성일 23-07-23 14:59

본문

- VDO(Virtual Data Optimizer) Red Hat 리눅스에서 데이터 압축 중복제거를 수행하는 툴입니다. 중복제거란 데이터를 블록 단위로 나누어서 중복되는 블록 하나만 저장하는 기술로 실제 저장되는 데이터를 극단적으로 줄일 있습니다.

 

 

 

 

그림으로 설명하자면 아래와 같습니다.

 

48e84b860a61d2445a73e650e2663218_1690092409_4813.png
  

 

. Reduce zero blocks : 제로가 아닌 데이터 블록 수집

 

. Eliminates 4KB duplicate blocks : Data 중복성은 VDO에서 제공되는UDS 커널 모듈에서 유지 관리

 

. Compresses remaining blocks : LZ4 압축이 개별 데이터 블록에 적용 압축된 Data블록은 고정 길이(4KB)  포장되어 미디어에 저장

 

 

 

Ø  이번에는 레이어를 그림으로 설명 하자면 아래와 같습니다.

 

. 우리가 기존에 사용하던 LVM 이전에 만들어줘야합니다. 그리고 기존과 동일하게 LVM -> FS -> 마운트 하여 사용하면됩니다.

 

 쉽게 설명하여 레이어가 한 단계 생긴것입니다.

 

 48e84b860a61d2445a73e650e2663218_1690092427_6066.png 

 

  

 

>>>> 좀 자세히 알아가보도록 하겠습니다.

 

 

 

 . VDO 사용 모드에는 2가지 방법이 있습니다.  

 

 

48e84b860a61d2445a73e650e2663218_1690092503_5592.png
 

 

(1) 'sync' 모드: VDO 장치에 대한 쓰기가 기본 스토리지가 작성되었을 ack되어 데이터를 영구적으로 기록합니다. 

그런 다음 중복 제거/압축이 완료됩니다.

  

(2) 'async' 모드: 영구 저장소에 쓰기 전에 쓰기가 승인됩니다. VDO async 모드에서도 계층의 플러시 요청을 따릅니다. 따라서 async 모드는 휘발성 쓰기 되돌림 캐시가 있는 다른 장치와 동일하게 데이터를 안전하게 처리할 있습니다.

  

(3) 'auto' 모드: 기본값이며, 기본 스토리지의 기능에 따라  'async' 또는 ''sync'  선택

  

 

 

48e84b860a61d2445a73e650e2663218_1690092548_3119.png
 

     

 

 

Ø  >>>>>>    그럼 이제 실제로 VDO 테스트를 해 보도록하겠습니다.

 

  

1.       1. VDO 설치

 

# dnf install vdo kmod-kvdo

 

# systemctl enable --now vdo

 

 

 

# vdo create --device /dev/vdb1 --vdoLogicalSize 200G --name vdo1

 

Creating VDO vdo1

 

      The VDO volume can address 96 GB in 48 data slabs, each 2 GB.

 

      It can grow to address at most 16 TB of physical storage in 8192 slabs.

 

      If a larger maximum size might be needed, use bigger slabs.

 

Starting VDO vdo1

 

 

 

Starting compression on VDO vdo1

 

VDO instance 0 volume is ready at /dev/mapper/vdo1

 

-----------------------------------------------------------------------

 

단일 물리 볼륨 용량은 최대 256TB

 

단일 논리 볼륨 용량 제약은 최대 4PB

 

-----------------------------------------------------------------------

 

 

 

2.      2.  LVM 파일시스템 단계

 

# pvcreate /dev/mapper/vdo1

 

  Physical volume "/dev/mapper/vdo1" successfully created.

 

 

 

# vgcreate testvg /dev/mapper/vdo1

 

  Volume group "testvg" successfully created

 

 

 

# lvcreate -l 100%FREE -n testlv testvg

 

  Logical volume "testlv" created.

 

 

 

# mkfs.xfs -K /dev/testvg/testlv

 

. mkfs 명령과 함께 사용되는 "-K" 파일 시스템 생성 블록 폐기 요청을 전송하지 않음으로써 XFS 파일 시스템의 포맷 속도를 높인다.  VDO 볼륨이 방금 생성되었기 때문에 이미 0으로 초기화되었습니다.

 

 

 

 

 

3.       3. 마운트 단계

 

# vi /etc/fstab

 

/dev/testvg/testlv /mnt/testlv xfs defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0

 

 

 

# mount -a

 

 

 

Filesystem                                   Size  Used Avail Use% Mounted on

 

/dev/mapper/testvg-testlv            200G  1.5G  199G   1% /mnt/testlv

 

/dev/mapper/nonevdo-nonevdo  100G  746M  100G   1% /mnt/nonevdo

 

 

 

# vdo status | egrep 'Deduplication|Compression|write policy'

 

 Compression: enabled

 

 Configured write policy: auto

 

 Deduplication: enabled

 

       write policy: async

 

 

 

 

 

# vdostats  --human-readable

 

Device                          Size          Used Available Use% Space saving%

 

/dev/mapper/vdo1        100.0G      4.1G     95.9G   4%           N/A

 

 

 

The output of "vdostats -- hu" shows:

 

User available space (in my case, 95.9GB)

 

UDS metadata space (in my case, 4.1GB)

 

Storage savings (in my case, 99%)

 

 

 

 

 

4.       4.  VDO 사용해보기  - 기능 테스트 단계

 

중복 제거 테스트 : 1G테스트 파일을 5  생성합니다

 

# cd /mnt/testlv

 

# dd if=/dev/urandom of=dd.file1 count=1024 bs=1024k

 

# dd if=/dev/urandom of=dd.file2 count=1024 bs=1024k

 

# dd if=/dev/urandom of=dd.file3 count=1024 bs=1024k

 

# dd if=/dev/urandom of=dd.file4 count=1024 bs=1024k

 

# dd if=/dev/urandom of=dd.file5 count=1024 bs=1024k

 

 

 

# df -hP

 

Filesystem                           Size  Used Avail Use% Mounted on

 

/dev/mapper/testvg-testlv    200G  6.5G  194G   4% /mnt/testlv

 

 

 

 

 

# vdostats  --human-readable

 

Device                             Size      Used Available Use% Space saving%

 

/dev/mapper/vdo1        100.0G      9.1G     90.9G   9%            1%

 

 

 

Ø  파일을 100 만들어 보겠습니다.

 

# for i in {1..100}; do cp -v dd.file1 cp.file$i;  done

 

'dd.file1' -> 'cp.file1'

 

'dd.file1' -> 'cp.file2'

 

'dd.file1' -> 'cp.file3'

 

'dd.file1' -> 'cp.file4'

 

'dd.file1' -> 'cp.file5'

 

………….

 

………..

 

# df -hP

 

Filesystem                                    Size  Used   Avail Use% Mounted on

 

/dev/mapper/testvg-testlv            200G  107G   94G  54% /mnt/testlv

 

/dev/mapper/nonevdo-nonevdo  100G  100G   20K 100% /mnt/nonevdo

 

. df 명령어로 보면 100 늘어난것을 확인됩니다.

 

 

 

 

 

# vdostats --human-readable

 

Device                             Size      Used Available Use% Space saving%

 

/dev/mapper/vdo1        100.0G      9.3G     90.7G   9%           97%

 

. 하지만 실제로 vdostats 보면 변화가 없습니다.  그이유는 중복된 파일은 늘어나지 않는것입니다.

 

쉽게 VDO 기능에 대해 알수있게 되었습니다.

 

 

 

 

 

  

 

 

그럼 성능은????  어떻게 될까요???

 

 

 

 

File system backend

 

Deploy to file system

 

Copy on file system

 

XFS onto of normal LVM volume

 

28 sec 

 

35 sec

 

XFS on VDO device, async mode

 

55 sec

 

58 sec

 

XFS on VDO device, sync mode

 

71 sec

 

92 sec

 

 

 

. VDO 쓰는 속도는 일반 백엔드보다 느립니다. 여기 백엔드는 하드디스크였고, 예를 들어 SSD 백엔드로 사용할 경우 영향은 낮습니다.

. 테스트를 통해 확인했을 VM이나 컨테이너의 경우 가장 높은 중복제거율을 있었고 그림 파일, 오피스파일 등에서는 낮은 중복제거율을 있었습니다.

 

 

 

 

그럼 VDO 어디에 사용하면 좋을까요?? 고민해봤습니다.

 

 

       . 사실 VDO 레드햇이 제공은 하지만 Technology Preview 이기때문에 기술지원은 되지 않습니다.

 

        그래서 운영에 사용하고자 한다면 저는 로그, 소스, 백업데이터 저장용으로 사용하기에 용이할것으로 생각이 되어집니다.

 

 

 

 

 

 

 

[VDO 장.단점]

장점 : 중복 제거 압축 기능을 이용하여 스토리지 공간 활용도가 높아지며, 주로 VM 컨테이너환경에서 높은 효율

 

단점 : 일반적인 스토리지에 비해 성능 저하가 발생

 

 

 

 

 

 

 

, 이와관련하여 궁금한점 있으시면 QnA게시판을 통해 질문 해주시면 성심성의껏 답변 드리도록 하겠습니다 .

 

 

긴글 읽어 주셔서 감사합니다.

 

 

참고한 링크: 

https://www.slideshare.net/GlusterCommunity/data-reduction-for-gluster-with-vdo 

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html-single/deduplicating_and_compressing_storage/index 

 

 

   ​ 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
64 OS OSworker 아이디로 검색 전체게시물 10-09 798
authselect를 사용하여 사용자 인증 구성에 대해 알아보겠습니다. #pam_faillock #pam.d

카테고리 : OS

798 0
작성자 : OSworker 23/10/09
63 OS OSworker 아이디로 검색 전체게시물 09-30 2021
Red Hat Subscription-Manager 사용법에 대해 알아보겠습니다~

카테고리 : OS

2,021 0
작성자 : OSworker 23/09/30
62 OS OSworker 아이디로 검색 전체게시물 09-25 566
Stratis 파일시스템에 대해 들어보셨나요?

카테고리 : OS

566 0
작성자 : OSworker 23/09/25
61 OS OSworker 아이디로 검색 전체게시물 09-21 762
Kdump 에 대해 알아보는 시간~!!

카테고리 : OS

762 0
작성자 : OSworker 23/09/21
60 OS OSworker 아이디로 검색 전체게시물 08-30 1569
Red Hat Linux lifecycle

카테고리 : OS

1,569 0
작성자 : OSworker 23/08/30
59 OS OSworker 아이디로 검색 전체게시물 08-20 625
Live kernel patch - 온라인 커널 업데이트

카테고리 : OS

625 0
작성자 : OSworker 23/08/20
58 OS OSworker 아이디로 검색 전체게시물 08-12 745
Red Hat Enterprise Linux 9 의 새로운기능에 대해 알아보기 part -2 : Session Recording

카테고리 : OS

745 0
작성자 : OSworker 23/08/12
57 OS OSworker 아이디로 검색 전체게시물 07-31 993
OpenSSH 'CVE-2023-38408' 보안 취약점 안내

카테고리 : OS

993 1
작성자 : OSworker 23/07/31
56 OS OSworker 아이디로 검색 전체게시물 07-28 510
Red Hat Enterprise Linux 9 의 새로운기능에 대해 알아보기 part -1

카테고리 : OS

510 0
작성자 : OSworker 23/07/28
열람중 OS osgusu 아이디로 검색 전체게시물 07-23 529
열람중
[Storage / Filesystem] VDO(Virtual Data Optimizer)란 무엇인가?

카테고리 : OS

529 0
작성자 : osgusu 23/07/23
Total 84건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top