VMware Virtual machine으로 Xpenology 구동 환경에서 가상 NVMe로 Read cache 설정 시 효과.
제 경우는 표제의 내용처럼 VMWare에 Guest OS로 Xpenology 구성하여
개인 메일 서버로 MailPlus 서비스와 가족앨범 관리 용도로 Synology Photos 서비스를 사용 중 입니다.
boot-loader는 sata disk로 할당하여 RR arpl-i18n 4G 이미지 파일로 잡아 주고 있고요.
DISK 구성도 256G 크기의 가상 Vmdk 두개 RAID로 엮어서 Application install 전용 Volume 하나와
1TB 크기의 가상 vmdk 파일 세개를 RAID 구성하여 Data 영역 Volume으로 사용하고 있습니다.
이렇게 운영하던 중 Synology Photos에 업로드한 동영상 파일들을 모바일 환경에서 App으로 재생 시
초기 3~4초 정도 전송 지연(버퍼링)이 발생되는데, Synology NVMe 슬롯에 메모리를 꼽고 Volume의
읽기 캐시로 잡아주면 스트리밍 버퍼링에 큰 개선 효과가 있다는 글을 Synology 포럼에서 접하게 되고,
저와 같은 가상머신 환경에(Virtual machine Xpenology) 가상의 NVMe 메모리(실제는 vmdk 일반 파일)를
가상으로 추가 해서 동영상 파일이 저장되어 있는 Volume의 Read cache로 사용하는게 효과가 있을지
애매 했던차에 구성을 해보았습니다.
v
가상의 M.2 드라이브 두개(64G, 128G)를 추가 해주고 정상적으로 잡혀있는것을 확인 한 후
스토리지 풀을 선택하고, SSD 캐시를 생성해 줍니다.
Application install 전용 Volume에는 64기가 크기의 Read cache를 생성해주고,
Data 영역 Volume에는 128G 크기의 Read cache를 생성해 주었습니다.
가상 환경이지만 Xpenology OS 인 DSM 입장에서는 물리적인 NVMe 드라이브로 인식하기에
Data 영역에 재 참조가 빈번하거나 조회 이력이 있는 데이터를 읽기 캐시에 인덱싱 하게되고, 그 결과..
3~4 초 정도 걸리던 Synology Photos App의 동영상 스트리밍 버퍼링 시간이 1초 언저리로 확 빨라짐을
체험하게 되었습니다.
오호,, 가짜인데.. 이게 된다고 ?? ㅋㅋㅋㅋㅋ 기대? 이상의 효과를 확인 했습니다.
가상이지만 DSM 입장에서 먼가 다른 메커니즘의 인덱싱을 통해 M.2 디스크를 활용하는 것 같았습니다.
Xpenology 구성 시 M.2 슬롯이 있는 보드라면 Read cache 설정도 고려 해보심이 좋을 듯 하여
가상환경이지만 실효가 있는 구성이기에 정보 공유 해봅니다.
단지 nvme타입의 가상이미지를 ssd캐시 풀로 만들어주기만 해도 성능향상이 있다는 말씀이신가요..?
네 맞습니다.
제가 구성한(테스트) 환경에서는 물리적으로 Data-Volume 용 Disk vmdk 파일과 Cache 용 NVMe SSD vmdk 파일이 물리적으로 동일 Disk / 동일 directory에 있습니다.
DSM 에서 Cache 용으로 추가된 SSD 용도의 vmdk 파일은 타 Data-Volume Disk 용도의 vmdk 파일과
다른 방식으로( 아마도 접근 빈도나 기록 시점에 따라서 선 적재하는 방식같이.. ) 활용한다고 생각됩니다.
실제 구성한것과 구성하지 않은것이 확실히 속도 차이가 나는걸 봐서는요.
(* 만약, M.2 Cache용 vmdk 파일 위치를 Memory Drive 처럼 고속의 매체를 사용하면, 지금 보다 더 좋은
결과가 생길 수 있을것 같기도 하네요.)
같은 IO 스루풋에서도 인덱싱시간을 획기적으로 줄여 데이터 엑세스 딜레이를 줄일수 있다는거겠네요..
물론 실제 SSD로 캐싱하면 좋겠지만 비교적 고용량 구성이 용이한 하드에서 특히 유용하게 활용될 수 있겠군요..
사실 위와같은 성능차이는 파일시스템단 인덱싱으로 처리됐어야 하는게 맞긴한데.. 저정도 시간차는 신기하긴하네요
조금더 면밀하게 구분을 하자면 Data-Volume용 vmdk 파일들은 초기 생성 옵션에 동적으로 크기가 커지도록
Dynamic size 옵션을 주었고, Cache 용 NVMe vmdk 파일들은 초기부터 전체 사이즈를 생성시 다 할당하는
옵션을 주었습니다. 또한, Snapshot 구동 시에도 캐시 영역은 대상에 잡히지 않토록 independent-persistent
옵션을 켜준 상태입니다.
또한, 제가 xpenology Virtual machine을 저장한 저장매체는 일반 HDD가 아니고 M.2 SSD 환경입니다.
그렇다고 해도, DATA와 Cache 가 동일한 M.2 SSD에 있는것이니, Cache를 구성하는것에 Synology Photos
App 스트리밍에서는 실효가 있음이 제 경우 확인 되었네요.^^
만약에 DATA Volume을 HDD 를 통해 구성한다고 하면, Cache 구성은 HDD 보다 좀더 빠른 저장매체를
사용하여 구성하는것이 기대효과 면에서는 더 맞는 선택이란 생각도 해봅니다.
요약 하자면, 가상환경에서 동영상과 같은 대용량 데이터의 엑세스 딜레이 개선을위해 속도가 빠른 랜덤 엑세스 가능 메체에 읽기 캐시는 잡아주면 효과가 있음.
ㅎㅎ 원효대사님의 깨우침을 빗대어 시계열로 나열한다면, 아직 Synology는 자신이 Xpenology 인지도 알지 못하는 어두운 밤에 시원하게 M.2 Cache를 벌컥 들이키곤 시원하다고 쾌속하게 동작해준 상황 이네요., 나중에라도 Xpenology의 DSM이 스스로 모든것이 허상(Virtual machine 환경의 V-IO)이란 깨우침을 찾을지는 모를일이겠네요. 혹여 DSM이 GPT를 만나게 된다면 ㅋㅋㅋ.
cmt alert