Centos8中安裝並配置VDO來優化儲存空間
虛擬資料優化器(VDO)是一種塊虛擬化技術,可提供透明的資料重複刪除功能。通過消除冗餘的資料塊,VDO可以大大減少實際使用的磁碟容量。 |
VDO由兩個核心模組和兩個 組成:
由下面兩個核心模組組成:
- kvdo - 該模組載入到裝置管理器層,提供用於重複資料刪除的塊儲存卷。
- uds - 該模組負責與VDO磁碟上的通用的重複資料刪除索引進行通訊。
包括兩個 行工具:
- vdo - 用於建立,刪除,啟動和停止VDO卷,以及執行其他配置操作。
- vdostats - 用於報告VDO卷的各個方面,包括有效的減少和物理卷的利用率。
8
下面命令安裝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 async Creating 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
下面分解一下命令,看看所使用的選項:
- --device - 指定在哪個硬碟上建立vdo卷
- --vdoLogicalSize - 這裡我們指定了容量大小為60G,比我們實際磁碟20G大了許多。假設我們將從重複資料刪除中至少得到3:1的減少,對於大多數的資料,這是相當保守的,但如果你的資料沒有很多重複的,那麼比率應該是不同的。日誌檔案和其他純文字檔案通常可以很好地進行重複資料刪除,可能會得到10:1甚至更高的重複資料刪除率。但是二進位制檔案,如視訊、音訊或壓縮包,將遠遠低於3:1,甚至在某些情況下1:1。這種情況下不建議使用vdo卷。
- --writePolicy - vdo有三種寫策略:
sync:
只有在資料寫入物理裝置後,才會確認對VDO卷的寫入。async:
在資料寫入快取後被確認。如果在裝置故障或掉電之前沒有重新整理快取,可能會導致資料丟失。auto:
在這種預設模式下,VDO將檢查儲存裝置並確定它是否支援重新整理。如果是這樣,VDO將使用非同步模式。如果沒有,它將使用同步模式。
正如我們在上一步的輸出中看到的,VDO建立了一個名為/dev/mapper/vdolvm的新dm裝置。當我們建立lvm卷組時,這就是我們將要使用的裝置。
[root@localhost ~]# ll /dev/mapper/vdolvm lrwxrwxrwx 1 root root 7 Mar 4 13:31 /dev/mapper/vdolvm -> ../dm-2
讓我們看看使用vdostats可以獲得有關vdo卷的什麼樣的資訊:
[root@localhost ~]# vdostats --hu Device 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 <60.00 GiB PE Size 4.00 MiB Total PE 15359 Alloc PE / Size 0 / 0 Free PE / Size 15359 / <60.00 GiB VG UUID qfPiH6-eMCU-Z6kr-eeCu-jd0J-8lmf-49daZX
從上面可以看到,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 ; done meta-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=1 log =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=1 log =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=1 log =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 --hu Device 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/fstab UUID="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
虛擬資料優化器(VDO)是一種塊虛擬化技術,可提供透明的資料重複刪除功能。通過消除冗餘的資料塊,VDO可以大大減少實際使用的磁碟容量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2795493/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mac新手使用技巧——如何在Mac上優化儲存空間Mac優化
- 使用點陣圖演算法來優化簽到歷史儲存空間佔用演算法優化
- Centos8 安裝並使用Ansible(二)CentOS
- Centos8 安裝並使用Ansible(一)CentOS
- VM安裝配置centos8教程CentOS
- 2、儲存容量和儲存地址空間的轉換
- innodb表空間儲存結構
- centos8 中安裝texinfoCentOS
- Synology群暉NAS儲存正確建立儲存池和儲存空間的方法
- centos8安裝和配置redis服務CentOSRedis
- 在CentOS8中安裝gitlabCentOSGitlab
- Tomcat—部署配置及優化(安裝部署;虛擬主機配置;優化)Tomcat優化
- Android儲存(3)– 裝置配置Android
- 安裝maven,並將其配置到idea中MavenIdea
- win10保留的儲存空間怎麼檢視_win10保留的儲存空間的檢視方法Win10
- 12.2 grid 安裝空間要求
- 資料庫恢復中需要大量儲存空間的原因HQ資料庫
- cloud.heytap.com 歡太雲 最佳化儲存空間 原圖Cloud
- 多名稱空間結合cgroup保障儲存QoS
- 鐵威馬NAS建立儲存空間的方法
- UniCloud空間雲端儲存圖床原始碼Cloud圖床原始碼
- 分享幾種清理“其他儲存”並在Mac上獲得更多可用空間的方法Mac
- vscode中配置eslint+vetur+prettier實現儲存時自動格式化並修復VSCodeEsLint
- CentOS8安裝Geant4筆記(二):CentOS8安裝Qt5.15.2並測試執行環境CentOS筆記QT
- Linux中,如何配置iSCSI儲存?Linux
- 刪除檔案後儲存空間容量沒有變化怎麼辦?
- Windows 安裝並配置 MySQL 5.6WindowsMySql
- Centos8 中安裝 Lynis審計工具CentOS
- 儲存服務質量優化優化
- 小談mysql儲存引擎優化MySql儲存引擎優化
- 如何刪除 Mac 儲存空間的其他選項?Mac
- Python 儲存字串時是如何節省空間的?Python字串
- PG的物理儲存結構、版本控制、空間回收
- 伺服器儲存空間不足怎麼處理?伺服器
- 安裝Centos8 LinuxCentOSLinux
- centos8 安裝zabbixCentOS
- CentOS8安裝HTopCentOS
- Paramiko SSH登入裝置儲存配置