您好,登錄后才能下訂單哦!
這篇“Centos8中怎么使用VDO優化存儲空間”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Centos8中怎么使用VDO優化存儲空間”文章吧。
虛擬數據優化器(VDO)是一種塊虛擬化技術,可提供透明的數據重復刪除功能。通過消除冗余的數據塊,VDO可以大大減少實際使用的磁盤容量。
Centos8
下面命令安裝vdo和相關依賴,安裝完成之后重啟系統:
[root@localhost ~]# yum -y install vdo[root@localhost ~]# reboot
確保有一個空余磁盤或分區可供VDO使用。盡管可以在LVM邏輯卷上面創建VDO卷,但是重新引導系統時會出現引導順序問題。所以再裸盤上面創建vdo卷之后在它之上創建LVM邏輯卷。
下面使用一塊20GB的磁盤,/dev/sda做vdo卷 下面創建vdo卷:
[root@localhost ~]# vdo create --name=vdolvm --device /dev/sda --vdoLogicalSize 60G --writePolicy asyncCreating VDO vdolvm The VDO volume can address 16 GB in 8 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 vdolvm Starting compression on VDO vdolvm VDO instance 0 volume is ready at /dev/mapper/vdolvm
下面分解一下命令,看看所使用的選項:
sync:
只有在數據寫入物理設備后,才會確認對VDO卷的寫入。async:
在數據寫入緩存后被確認。如果在設備故障或掉電之前沒有刷新緩存,可能會導致數據丟失。auto:
在這種默認模式下,VDO將檢查存儲設備并確定它是否支持刷新。如果是這樣,VDO將使用異步模式。如果沒有,它將使用同步模式。正如我們在上一步的輸出中看到的,VDO創建了一個名為/dev/mapper/vdolvm的新dm設備。當我們創建lvm卷組時,這就是我們將要使用的設備。
[root@localhost ~]# ll /dev/mapper/vdolvmlrwxrwxrwx 1 root root 7 Mar 4 13:31 /dev/mapper/vdolvm -> ../dm-2
讓我們看看使用vdostats可以獲得有關vdo卷的什么樣的信息:
[root@localhost ~]# vdostats --huDevice Size Used Available Use% Space saving% /dev/mapper/vdolvm 20.0G 4.0G 16.0G 20% N/A
由于我們尚未將任何數據寫入該卷,因此Space saving%
字段為N/A
。稍后我們將寫一些數據時,在此處看到更多有用的信息。
可以看到上圖中,我們還沒有寫任何數據,但是已經有4GB,20%的空間正在使用中了!這是因為“通用重復數據刪除索引”已被寫入磁盤。這基本上是一個數據庫,用于記錄slab指紋及其位置。這就是使重復數據刪除成為可能的原因。
現在我們已經創建了VDO設備,我們可以對其進行分區并格式化,或者在這個vod卷上面創建lvm邏輯卷。下面我們創建邏輯卷:
# 創建物理卷[root@localhost ~]# pvcreate /dev/mapper/vdolvm Physical volume "/dev/mapper/vdolvm" successfully created.# 創建卷組vdo_vg[root@localhost ~]# vgcreate vdo_vg /dev/mapper/vdolvm Volume group "vdo_vg" successfully created# 查看vdo_vg卷組的信息[root@localhost ~]# vgdisplay vdo_vg --- Volume group --- VG Name vdo_vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size
從上面可以看到,lvm認為我們的基礎磁盤為120GB,盡管我們知道它只有40GB。由于LVM不知道VDO后端磁盤的大小。
現在,讓我們創建幾個邏輯卷吧:
[root@localhost ~]# lvcreate -n vdo_lv01 -L 15G vdo_vg[root@localhost ~]# lvcreate -L 15G -n vdo_lv02 vdo_vg[root@localhost ~]# lvcreate -L 15G -n vdo_lv03 vdo_vg# 查看創建好的邏輯卷[root@localhost ~]# lvs -o +devices
通常,創建文件系統后,它將在設備上運行Trim
操作。使用VDO時,這不是理想的選擇,因為磁盤容量是按需分配的。因此,我們要告訴mkfs在文件系統創建過程中不要丟棄塊。對于XFS,請使用-K
選項。對于EXT4,請使用-E nodiscard
。下面使用了一個for循環,將三個邏輯卷格式化為XFS文件系統:
[root@localhost ~]# for i in `seq 1 3`; do mkfs.xfs -K /dev/vdo_vg/vdo_lv0$i ; donemeta-data=/dev/vdo_vg/vdo_lv01 isize=512 agcount=4, agsize=983040 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=3932160, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 meta-data=/dev/vdo_vg/vdo_lv02 isize=512 agcount=4, agsize=983040 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=3932160, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 meta-data=/dev/vdo_vg/vdo_lv03 isize=512 agcount=4, agsize=983040 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=3932160, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
當我們將新文件系統掛載到掛載點時,我們要告訴XFS放棄塊,因為這將大大加快文件刪除的速度。
[root@localhost ~]# mkdir -p /data/{01..03}[root@localhost ~]# for i in `seq 1 3`; do mount -o discard /dev/vdo_vg/vdo_lv0$i /data/0$i; done
現在,我們向設備寫入了少量數據,我們可以再次檢查VDO卷以查看情況是否已更改。
[root@localhost ~]# vdostats --huDevice Size Used Available Use% Space saving% /dev/mapper/vdolvm 20.0G 4.0G 16.0G 20% 86%
下面將三個邏輯卷設置為開機啟動,需要在fstab文件中添加x-systemd.device-timeout=0
和x-systemd.requires=vdo.service
。
使用blkid
查看這三個邏輯卷的UUID。
使用上面獲取到的UUID,添加在/etc/fstab文件中:
[root@localhost systemd]# vim /etc/fstabUUID="bd2c1c61-4656-4065-b5a0-3ca53ef0f949" /data/01 xfs defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0 UUID="1e53579b-f1da-4f77-80e6-d61a40515525" /data/02 xfs defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0 UUID="d41bf7e2-bf75-4db7-b323-a923375f6a6e" /data/03 xfs defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
以上就是關于“Centos8中怎么使用VDO優化存儲空間”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。