Tuesday, February 13, 2018

Understanding VDO (Virtual Data Optimizer)

                 ဒီ article လေးကို မနက် က redhat blog မှာတွေ့လို့ဖတ်ကြည့်ရင်း note လုပ်ထားချင်တာနဲ့ ရေးဖြစ်သွားပါတယ်။ အခုပြောမယ့် အကြောင်းရာက VDO (Virtual Data Optimizer) လို့ခေါ်တယ့် RHEL7.5 beta မှာစပါဝင်လာတယ့် new kernel module ဖြစ်ပါတယ်။ သူ့ရဲ့ အဓိက အလုပ်လုပ်ပုံကတော့ block device storage တွေရဲ့ Storage space ကို reduction လုပ်နိုင်ခြင်းနဲ့ storage space ကို deduct လုပ်နိုင်ခြင်းကြောင်း data replication bandwidth ကိုလဲ လျှော့ချနိုင်သွားပါတယ်။
             VDO နှင့် data reduction ပြုလုပ်နိုင်အောင် အဓိက ပြုလုပ်ပေးနေသော phase ၃ ဆင့်ရှိပါတယ်။
Zero Block Elimination (Initial Phase)
              Technically အရပြောမယ်ဆိုရင် Initial Phase မှာ VDO သည် block devices တိုင်းမှာရှိတꩻယ့် all zeros တိုင်းကို record လုပ်ပြီး metadata မှာပဲသိမ်းထားပါတယ်။ Zero Block Elimination method ကိုအသုံးပြုပြီး zeros တွေကို filter လုပ်ကာ non-zeros ပိုင်းတွေကိုသာ collect လုပ်ပြီး Second Phase သို့ပိုဆောင်ပါတယ်။


Deduplication (Second Phase)
             Second Phase ဖြစ်တဲ့ deduplication မှာ ရောက်လာသော data တွေက redundant data တွေလား redundant data ဆိုတာက exact same data information တွေပဲ duplicate ဖြစ်ပြီး storage ပေါ်မှာ သိမ်းဆည်းထားတဲ့ data အမျိူးအစားဖြစ်ပါတယ်။ UDS ဆိုတဲ့ (Universal Deduplication Service) က ထို redundant data တွေကို စီစစ်ပြီး ထပ် storage ပေါ်မှာမရေးတော့ပဲ ရှိပြီးသား original copy ရဲ့ metadataဆီသို့ redundant မဟုတ်သေးတဲ့ data တွေကိုပဲ update လုပ်လိုက်ပါတယ်။

Compression (Final Phase)
            အထက်က phase တွေပြီးသွားတဲ့အချိန်မှာ နောက်ဆုံး phase အနေနဲ့ Compression phase မှာ LZ4 compression algorithm ဆိုအသုံးပြုပြီး redundant data မဟုတ်တဲ့ individual data block တွေကို compress လုပ်လိုက်တယ်။ အဲ့ဒီ့နောက် ထို compressed block တွေကို 4KB ရှိတဲ့ fix-length blockတွေလုပ်လိုက်ပြီး storage ပေါ်မှာသိမ်းဆည်းစေပါတယ်။ ထိုသို့လုပ်ခြင်းအားဖြင့် data read လုပ်တဲ့နေရာ မှာ performance တက်လာစေပါတယ်။

Installing VDO Package
            VDO package သည် အခု recently release လုပ်ထားတဲ့ RHEL 7.5beta မှာစပါဝင်လာပါတယ်။ Install လုပ်ဖို့အတွက် #yum install vdo ဆိုပြီး install ပြုလုပ်ပါ။

     
Creating VDO Volume
             Physical block ပေါ်မှာ VDO create လုပ်ရာတွင် Logical Volume ကိုပါ အတူတကွ create လုပ်ပေးရမှာဖြစ်ပါတယ်။ Logical Volume size ကိုတော့ redhat documentation အရ Object Storage တွေဖြစ်တယ် Ceph storageတို့လို အပေါ်မှာဆိုရင် 3:1 ration ဖြစ်ပြီးတော့ Hosting Active VMs or Container အမျိုးအစားတွေဆိုရင်တော့ 10:1 ration logical volume create လုပ်ဖို့ recommend ပေးထားပါတယ်။
          အောက်ကပုံမှာတော့ VM မှာ attachလုပ်ထားတဲ့ 15GB HDD "/dev/sdb" ကို vdo volume တစ်ခုအနေနဲ့ create လုပ်ပြထားပါတယ်။ Create command ကို man page မှာဖော်ပြထားတယ်။ Logical Volume ကို 3TB ဆိုပြီး ပေးထားပါတယ်။


 Create FileSystem on VDO Volume
            VDO volume ကို file system create လုပ်ပေးရပါမယ်။ ဒီမှာတော့ XFS filesystem ကိုအသုံးပြုထားတယ်။


Mounting VDO volume into fstab
            Filesystem create လုပ်ပြီးရင် fstab မှာထဲ mounting သွားလုပ်မယ်။ Mount directory အနေနဲ့ "vdotest" မှာ mount လုပ်ပါမယ်။


#df & #vdostats
         Mounting ပိုင်းပြီးလို့ #df command ရယ် #vdostats command ခေါ်ပြီး ကြည့်တဲ့အခါမှာ df command သည် hdd ရဲ့ logical partition ကိုပြပေးပြီး #vdostats ကတော့ hdd ရဲ့ physical storage size ကိုပြပေးပါတယ်။ ပုံမှာ Used=3.0G သည် vdo ရဲ့ metadata နဲ့ UDS အတွက် defaultအနေနဲ့ နေရာယူထားပါတယ်။ Totally 15GB partition မှာ 12GB ပဲ default အသုံးပြုလို့ရပါတယ်။


Testing VDO Feature
         နောက်ဆုံးအဆင့်အနေနဲ့ VDO ရဲ့ deduplication feature ကိုစမ်းသပ်မှာပါ။ အခုကျွန်တော် mounted လုပ်ထားတဲ့ "vdotest" directory ထဲကို RHEL ISO file ကို duplicate လုပ်ပြီးတော့ ပွားထားလိုက်ပါတယ်။ ISO file size သည် 3.7GB ရှိပါတယ်။ ISO file ကို 4xISO copy ပွားလိုက်ရင် 14GB ကျော်ကျော်လောက် total size ဖြစ်သွားပါမယ်။ လက်ရှိ Storage space သည် 12GB ဖြစ်တဲ့အတွက် ပုံမှန် အတိုင်းဆို သိမ်းလို့ရမှာမဟုတ်ပါ။ VDO ရဲ့ feature ကိုအသုံးပြုပြီးတော့ deduplication filter လုပ်ပြီး store လုပ်နိုင်တာဖြစ်ပါတယ်။

Before Storing data into Directory
          Data Store မလုပ်ခင် Status ဖြစ်ပါတယ်။


After Data Residing in Directory
      Data store ပြီးတဲ့နောက် #df ရꩻယ် #vdostats command များဖြင့်ကြည့်သောအခါ #vdostats ရဲ့ actual Used title အောက်မှာ 6.6GB မှာနေရာယူသွားတာတွေ့ရပါတယ်။ တစ်နည်းအားဖြင့် တူနေသော redundant data များကို write out မလုပ်တော့ပဲ original ISO data size 3.7GB ပေါ်မှာပဲ redundant မဟုတ်တဲ့ data အသစ်များကိုပဲ metadata ကို updateလုပ်လိုက်ခြင်းဖြင့် VDO ရဲ့ Storage Deduplication ကိုစမ်းသပ်နိုင်ပါတယ်။

 
Please also Like and Follow Root Of Info Page

Ref:
https://rhelblog.redhat.com/2018/02/05/understanding-the-concepts-behind-virtual-data-optimizer-vdo-in-rhel-7-5-beta/

https://rhelblog.redhat.com/2018/02/08/determining-the-space-savings-of-virtual-data-optimizer-vdo-in-rhel-7-5-beta/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/vdo-qs-creating-a-volume

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/vdo-qs-creating-a-volume#vdo-qs-volatile-cache

http://searchdatabackup.techtarget.com/definition/inline-deduplication

https://www.webopedia.com/TERM/F/fixed_length.html

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_1403.htm

https://superuser.com/questions/559772/how-to-verify-that-hard-drive-is-filled-with-zeroes-in-linux

https://www.techopedia.com/definition/18707/data-redundancy



Share:

0 comments:

Post a Comment