linux入門系列13--磁盤管理之RAID、LVM技術(shù)

前一篇文章學(xué)習(xí)了磁盤分區(qū)涵叮、格式化惭蹂、掛載等相關(guān)知識,本文將講解RAID和LVM技術(shù)割粮。

磁盤管理操作主要是運維人員用的較多盾碗,如果只是單純的開發(fā)人員,可以先略過本文舀瓢。但是在很多小公司里往往都是一人多用廷雅,運維、開發(fā)通常都是同一個人京髓,因此對個人的技能要求更高航缀。即便不是如此,多了解下相關(guān)概念也是有利而無害的堰怨。

本文將先講解RAID技術(shù)方案相關(guān)理論知識并通過案例演示RAID操作芥玉,然后演示LVM技術(shù)以解決存儲資源動態(tài)調(diào)整問題。

一备图、獨立冗余磁盤陣列(RAID)

RAID(Redundant Array of Independent Disk)技術(shù)把多個硬盤設(shè)備組合成一個容量更大灿巧、安全性更好的磁盤陣列赶袄,并把數(shù)據(jù)切割成多個區(qū)段后分別存放在各個不同的物理硬盤設(shè)備上,利用分散讀寫技術(shù)提升磁盤陣列整體的性能抠藕,同時把多個重要數(shù)據(jù)的副本同步到不同的物理硬盤設(shè)備上饿肺,從而起到了非常好的數(shù)據(jù)冗余備份效果。

簡單說就是通過RAID技術(shù)可以提升磁盤讀寫性能盾似,同時可以冗余備份數(shù)據(jù)保證數(shù)據(jù)可靠性敬辣。但是性能和可靠性不可能同時滿足的非常好,因此在二者之間作出權(quán)衡就產(chǎn)生了不同的RAID方案零院。

1.1 RAID方案及特點

據(jù)說目前RAID磁盤陣列的方案至少有十幾種购岗,然而萬變不離其宗,都是在讀寫性能和可靠性之間權(quán)衡门粪,因此只介紹幾種比較有代表性的方案。

方案 特點
RAID0 磁盤讀寫性能高烹困,但數(shù)據(jù)可靠性低
RAID1 磁盤設(shè)備利用率低玄妈,但數(shù)據(jù)可靠性高
RAID5 兼顧成本、讀寫性能和數(shù)據(jù)安全的折中方案
RAID10 相對于成本髓梅,更看重數(shù)據(jù)安全可靠
1.1.1 RAID0

把多塊物理硬盤設(shè)備通過硬件或軟件的方式串聯(lián)在一起拟蜻,組成一個大的卷組,并將數(shù)據(jù)依次寫入到各個物理硬盤中枯饿。

最理想情況下酝锅,磁盤讀寫性能將提高數(shù)倍,但如果其中任意一塊磁盤損壞將導(dǎo)致整個系統(tǒng)數(shù)據(jù)被破壞奢方。也就是說雖然RAID0有效提高磁盤數(shù)據(jù)的吞吐速度搔扁,但是不具備數(shù)據(jù)備份和錯誤修復(fù)能力。

其示意圖如下:

file
1.1.2 RAID1

如上所述蟋字,雖然RAID0提升了磁盤讀寫速度稿蹲,但是由于它將數(shù)據(jù)依次寫入各個磁盤中,把數(shù)據(jù)分開存儲鹊奖,如果其中一塊磁盤發(fā)生故障將會導(dǎo)致整個系統(tǒng)數(shù)據(jù)損壞苛聘。因此如果對數(shù)據(jù)要求性要求較高,但對磁盤讀寫速度沒有要求的話忠聚,這種方案就不合適设哗,需要用到RAID1方案。

RAID1示意圖如下:

file

RAID1是把多塊硬盤綁定两蟀,數(shù)據(jù)同時寫入多塊磁盤网梢,這樣就會有多份數(shù)據(jù)副本,當(dāng)其中某一塊硬盤發(fā)生故障后垫竞,立即自動以熱交換的方式來恢復(fù)數(shù)據(jù)的正常使用澎粟。

雖然通過副本的形式保證了數(shù)據(jù)的安全性蛀序,但是磁盤設(shè)備利用率不高,從示意圖可以看出活烙,如果是2塊磁盤則利用率只有50%徐裸,因此增加了成本開銷。

1.1.3 RAID5

前面兩種方案分別偏向于磁盤速度和數(shù)據(jù)安全啸盏,而RAID5則是在讀寫性能重贺、數(shù)據(jù)安全和成本之間的一個相互妥協(xié)方案。

示意圖如下:

file

RAID5技術(shù)是把硬盤設(shè)備的數(shù)據(jù)奇偶校驗信息保存到其他硬盤設(shè)備中回懦。這樣的好處是其中任何一設(shè)備損壞后不至于出現(xiàn)致命缺陷气笙,圖中的parity部分存放的就是數(shù)據(jù)的奇偶校驗信息。

簡單說就是RAID5方案實際上沒有備份硬盤中的真實數(shù)據(jù)信息(數(shù)據(jù)只有一份)怯晕,而是當(dāng)硬盤設(shè)備出現(xiàn)問題后通過奇偶校驗信息來嘗試重建損壞的數(shù)據(jù)潜圃。

這種方案兼顧了了硬盤設(shè)備的讀寫速度、數(shù)據(jù)安全性與存儲成本問題舟茶。

1.1.4 RAID10

雖然RAID5看起來在成本問題谭期、磁盤讀寫以及數(shù)據(jù)安全性有了一個相互妥協(xié)的方案,但實際上很多企業(yè)吧凉,尤其是金融企業(yè)數(shù)據(jù)本身的價值遠(yuǎn)比磁盤價格高隧出,因此成本并不是第一考慮要素,在這種場景下阀捅,一般是采用RAID10技術(shù)胀瞪。

RAID10方案實際就是把RAID0和RAID1兩種方案進(jìn)行組合而來,示意圖如下:

file

如圖所示饲鄙,需要至少4塊硬盤來組建RAID10凄诞,先兩兩組合制作為RAID1確保數(shù)據(jù)有副本來保證安全性,然后在將組合后的兩個RAID1采用RAID0進(jìn)行組合忍级,進(jìn)一步提高設(shè)備的讀寫速度幔摸。

從理論上講,只要同一組中的硬盤不全壞掉颤练,那么最多可以損壞50%的硬盤設(shè)備而不丟失數(shù)據(jù)既忆。

由于RAID10方案繼承了RAID0的高讀寫速度和RAID1的數(shù)據(jù)安全性,在不考慮成本的情況下RAID10的性能都超過了RAID5嗦玖,因此當(dāng)前成 為廣泛使用的一種存儲技術(shù)患雇。

說明:由于篇幅所限,其他的方案就不一一列出宇挫,需要說明的是應(yīng)該按照實際需求去考慮成本苛吱、磁盤性能、數(shù)據(jù)安全性等因素器瘪,按需選擇最合適需求場景的方案翠储。

1.2 mdadm命令

通過上一篇文章“l(fā)inux入門系列12--磁盤管理之分區(qū)绘雁、格式化與掛載”的講解,已經(jīng)學(xué)會了磁盤設(shè)備管理之后援所,再來部署RAID就會非常簡單庐舟,因此如果還沒掌握的話,建議先返回去看上一篇文章住拭。

在正式操作RAID之前挪略,我們先看一下在linux中RAID磁盤陣列的管理命令mdadm。

語法格式:

? mdadm [模式參數(shù)] RAID名稱 [選項] [成員磁盤列表]

參數(shù)選項:

參數(shù) 作用
-a 檢查設(shè)備名稱
-n 指定設(shè)備數(shù)量
-l level滔岳,指定 RAID 級別
-C 創(chuàng)建RAID
-v 顯示詳細(xì)過程
-f 模擬設(shè)備損壞
-r remove杠娱,移除設(shè)備
-D 查看詳細(xì)信息

1.3 實例1-RAID10部署

1.3.1 環(huán)境準(zhǔn)備

我們直接在虛擬機中模擬添加多塊磁盤來演示RAID的操作,生產(chǎn)環(huán)境中采用的命令和步驟都是一致的谱煤。

為了避免實驗之間的干擾摊求,我們先克隆一臺新的Centos虛擬機進(jìn)行演示

file

點擊“克隆”后,彈出虛擬機向?qū)?/p>

file

點擊“下一步”

file

保存默認(rèn)選擇“虛擬機中的當(dāng)前狀態(tài)”刘离,點擊“下一步”

file

選擇“創(chuàng)建完整的克隆”睹簇,點擊“下一步”

file

按需修改虛擬機名稱已經(jīng)存放的位置,點擊“完成”按鈕

file

等待克隆完成(根據(jù)不同機器的性能寥闪,克隆時間不同)

file

這樣新的虛擬機就準(zhǔn)備好了。

1.3.2 創(chuàng)建RAID10

如前所述磨淌,RAID10至少需要4塊磁盤疲憋,因此我們先添加4塊磁盤。

(1)添加磁盤

選擇剛才克隆的虛擬機梁只,點擊“編輯虛擬機設(shè)置”

file

在彈出的“虛擬機設(shè)置”窗口中缚柳,點擊“添加”

file

在彈出的“添加硬件向?qū)А敝羞x擇“硬盤”,然后點擊“下一步”

file

磁盤類型保存默認(rèn)“SCSI”搪锣,點擊“下一步”

file

磁盤類型保持默認(rèn)的“創(chuàng)建新虛擬機磁盤”秋忙,點擊“下一步”

file

根據(jù)需要設(shè)置磁盤大小,此處設(shè)置為1G构舟,點擊“下一步”

file

選擇磁盤文件存放路徑灰追,點擊“完成”按鈕

file

即可看到剛才添加的一塊磁盤已經(jīng)成功。

file

在上邊界面中點擊“添加”按鈕狗超,用相同的方法再添加3塊磁盤弹澎,總共新添加4塊磁盤。

file

(2)創(chuàng)建RAID10磁盤陣列

啟動剛才添加磁盤的虛擬機努咐,并用之前講解的lsblk或fdisk查看磁盤設(shè)備

[root@origin ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0    1G  0 disk 
sdc               8:32   0    1G  0 disk 
sdd               8:48   0    1G  0 disk 
sde               8:64   0    1G  0 disk 
sr0              11:0    1  3.9G  0 rom  /run/media/root/CentOS 7 x86_64
[root@origin ~]# fdisk -l
Disk /dev/sde: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdd: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
...省略部分內(nèi)容
[root@origin ~]# 

可以看到剛才添加的磁盤:sdb苦蒿、sdc、sdd渗稍、sde佩迟,設(shè)備名稱名稱分別為:/dev/sdb团滥,/dev/sdc,/dev/sdd报强,/dev/sde

接下來用mdadm命令創(chuàng)建RAID10

[root@origin ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 1047552K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@origin ~]# 

C參數(shù)代表創(chuàng)建一個RAID陣列卡灸姊;-v參數(shù)顯示創(chuàng)建的過程,同時在后面追加一個設(shè)備名稱/dev/md0躺涝,這樣/dev/md0就是創(chuàng)建后的RAID 磁盤陣列的名稱厨钻;-a yes 參數(shù)代表自動創(chuàng)建設(shè)備文件;-n 4參數(shù)代表使用4塊硬盤來部署這個RAID磁盤陣列坚嗜;而-l 10參數(shù)則代表RAID10方案夯膀。

創(chuàng)建磁盤陣列成功之后,下一步就是格式化

1.3.3 格式化RAID

用mkfs命令格式化RAID磁盤陣列

[root@origin ~]# mkfs.ext4 /dev/md0 
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
131072 inodes, 523776 blocks
26188 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 
[root@origin ~]# 
1.3.4 掛載磁盤陣列

創(chuàng)建目錄并掛載磁盤陣列

[root@origin ~]# mkdir /raid
[root@origin ~]# mount /dev/md0 /raid
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M  140K  914M   1% /dev/shm
tmpfs                    914M  9.0M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/sr0                 3.9G  3.9G     0 100% /run/media/root/CentOS 7 x86_64
/dev/md0                 2.0G  6.0M  1.9G   1% /raid
[root@origin ~]# 

咦苍蔬,細(xì)心的朋友可能就有疑問了诱建,甚至開始懷疑是不是自己操作錯了,前面明明添加了4塊磁盤碟绑,每個磁盤為1G俺猿,總量應(yīng)該為4G,但此處卻看到/dev/md0大小為2G格仲?

是的押袍,你沒看錯,根據(jù)前面講解的RAID10方案凯肋,容量會減少谊惭。此處可以看到4塊磁盤的情況下,可用容量會減少一半侮东。

我們還需要把掛載信息寫入到配置文件中圈盔,使其永久生效

[root@origin ~]# echo "/dev/md0 /raid ext4 defaults 0 0">>/etc/fstab
[root@origin ~]# cat /etc/fstab 
...省略部分內(nèi)容
/dev/md0 /raid ext4 defaults 0 0
[root@origin ~]# 

這樣就把磁盤陣列掛載到了raid目錄。

1.3.5 查看磁盤陣列信息

查看磁盤陣列信息

[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       3       8       64        3      active sync   /dev/sde
[root@origin ~]#

可以看到4塊磁盤陣列中的4塊磁盤均已正常工作悄雅。

至此驱敲,RAID10方案部署完成。由此可見宽闲,整個操作流程給添加硬盤一致众眨,都是需要創(chuàng)建、格式化容诬、掛載等步驟围辙,非常簡單。

1.4 實例2-修復(fù)RAID10中壞掉的磁盤

此實驗?zāi)M剛才的磁盤陣列中某塊硬盤壞掉后的替換操作放案,因此在前邊的環(huán)境中繼續(xù)執(zhí)行以下操作姚建。

1.4.1 模擬設(shè)備損壞

使用mdadm命令的-f參數(shù)模擬設(shè)備損壞

[root@origin ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       3       8       64        3      active sync   /dev/sde
       0       8       16        -      faulty   /dev/sdb
[root@origin ~]#

在確認(rèn)有一塊物理硬盤設(shè)備出現(xiàn)損壞而不能繼續(xù)正常使用后,使用mdadm命令將其移除吱殉,然后查看RAID磁盤陣列的狀態(tài)掸冤,發(fā)現(xiàn)/dev/sdb磁盤的狀態(tài)已經(jīng)改變厘托。

在RAID10級別的磁盤陣列中,當(dāng)RAID1磁盤陣列中存在一個故障盤時并不影響RAID10 磁盤陣列的使用稿湿。當(dāng)購買了新的硬盤設(shè)備后再使用 mdadm 命令來予以替換即可铅匹,在此期間我們可以在/RAID目錄中正常地創(chuàng)建或刪除文件。

由于我們是在虛擬機中模擬的饺藤,為了更真實包斑,先重啟系統(tǒng),之后再繼續(xù)后邊的操作涕俗。

重啟之后發(fā)現(xiàn)損壞的盤已經(jīng)不再磁盤陣列中了

[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       3       8       64        3      active sync   /dev/sde
[root@origin ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE   MOUNTPOINT
sda               8:0    0   20G  0 disk   
├─sda1            8:1    0  500M  0 part   /boot
└─sda2            8:2    0 19.5G  0 part   
  ├─centos-swap 253:0    0    2G  0 lvm    [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm    /
sdb               8:16   0    1G  0 disk   
sdc               8:32   0    1G  0 disk   
└─md0             9:0    0    2G  0 raid10 /raid
sdd               8:48   0    1G  0 disk   
└─md0             9:0    0    2G  0 raid10 /raid
sde               8:64   0    1G  0 disk   
└─md0             9:0    0    2G  0 raid10 /raid
sr0              11:0    1  3.9G  0 rom  
1.4.2 取消磁盤陣列目錄掛載
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/md0                 2.0G  6.0M  1.9G   1% /raid
/dev/sda1                497M  134M  363M  27% /boot
[root@origin ~]# umount /raid/
[root@origin ~]# df -h        
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  134M  363M  27% /boot
[root@origin ~]# 

添加磁盤罗丰,需要先取消掛載

1.4.3 添加磁盤并加入磁盤陣列

取消掛載之后,我們再用mdadm命令的-a參數(shù)添加磁盤

[root@origin ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       4       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       3       8       64        3      active sync   /dev/sde
[root@origin ~]# 

可以看到/dev/sdb設(shè)備加入磁盤陣列成功

1.4.4 重新掛載磁盤陣列
[root@origin ~]# mount -a
[root@origin ~]# df -h   
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/md0                 2.0G  6.0M  1.9G   1% /raid

可以看到磁盤陣列/dev/md0又成功掛載到/raid目錄了再姑。

由于之前/etc/fstab文件以及添加了記錄萌抵,因此此處就無須再添加了。

至此就模擬出設(shè)備壞掉之后元镀,重新用新磁盤修復(fù)的過程绍填。

1.5 實例3-RAID5+備份盤方案

按上邊的RAID10部署方案,最多允許 50%的硬盤設(shè)備發(fā)生故障栖疑。同一組中的磁盤只要不全壞都可以正常工作讨永,但是在極端情況下如果同一個RAID1中的磁盤設(shè)備全部損壞,也會導(dǎo)致數(shù)據(jù)丟失遇革。這種情況我們采用采用多加一塊備份盤來解決卿闹,這塊硬盤平時處于閑置狀態(tài),一旦RAID磁盤陣列中有硬盤出現(xiàn)故障后則會馬上自動頂替上去澳淑。

同樣為了避免干擾,重新克隆一個虛擬機插佛,并采用RAID5方案來進(jìn)行演示杠巡。

采用RAID5并沒有什么特別之處,目的只是為了演示下RAID5的用法雇寇,因為前面示例1和2都是用的RAID10氢拥。

由于RAID5至少需要3塊磁盤,另外此方案還需要一塊備份盤锨侯,因此在虛擬機中克隆新機器后嫩海,添加4塊硬盤。

1.5.1 創(chuàng)建RAID5

采用mdadm命令創(chuàng)建RAID5

[root@origin ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 1047552K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@origin ~]# 

參數(shù)-n 3代表創(chuàng)建這個RAID5磁盤陣列所需的硬盤數(shù)囚痴,參數(shù)-l 5代表RAID的級別叁怪,而參數(shù)-x 1則代表有一塊備份盤。

[root@origin ~]# mdadm -D /dev/md0 
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd
       3       8       64        -      spare   /dev/sde

查看/dev/md0磁盤陣列看到有一塊備份盤在等待中了(spare)深滚。

1.5.2 格式RAID5磁盤陣列

用mkfs命令將磁盤陣列格式化為ext4文件格式

[root@origin ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
131072 inodes, 523776 blocks
26188 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 
[root@origin ~]# 

1.5.3 掛載磁盤陣列到目錄
[root@origin ~]# echo "/dev/md0 /raid ext4 defaults 0 0" >> /etc/fstab
[root@origin ~]# mkdir /raid
[root@origin ~]# mount -a
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
...省略部分內(nèi)容
/dev/md0                 2.0G  6.0M  1.9G   1% /raid
[root@origin ~]# 
1.5.4 模擬磁盤損壞

我們再次模擬把硬盤設(shè)備/dev/sdb 移出磁盤陣列

[root@origin ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@origin ~]# mdadm -D /dev/md0 
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       3       8       64        0      active sync   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd
       0       8       16        -      faulty   /dev/sdb
[root@origin ~]# 

迅速查看/dev/md0 磁盤陣列的狀態(tài)奕谭,發(fā)現(xiàn)備份盤/dev/sde已經(jīng)被自動頂替上去并開始了數(shù)據(jù)同步涣觉。

1.5.5 恢復(fù)損壞的磁盤

真實場景下,我們要保證隨時有一塊空閑的備份盤以防不測血柳,因此需要替換或修復(fù)剛才壞掉的盤/dev/sdb官册,恢復(fù)后它又自動變?yōu)榭臻e的備份盤,一旦有設(shè)備壞掉又會自動頂上去难捌,從而保證數(shù)據(jù)的安全性膝宁。

由于我們上邊一個步驟是模擬的/dev/sdb設(shè)備壞點,雖然壞了但是還是在占用中根吁,因此重啟虛擬機(重啟后發(fā)現(xiàn)/dev/sdb就沒有了员淫,不重啟會提示/dev/sdd設(shè)備繁忙無法成功執(zhí)行以下步驟),然后執(zhí)行以下操作:

[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       3       8       64        0      active sync   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd
[root@origin ~]# umount /raid/
[root@origin ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@origin ~]# mount -a
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M   80K  914M   1% /dev/shm
tmpfs                    914M  8.9M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  134M  363M  27% /boot
/dev/md0                 2.0G  6.0M  1.9G   1% /raid
[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分內(nèi)容
    Number   Major   Minor   RaidDevice State
       3       8       64        0      active sync   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd

       5       8       16        -      spare   /dev/sdb
[root@origin ~]# 

可以看到婴栽,添加后/dev/sdb設(shè)備又自動變?yōu)閭浞荼P了满粗。這樣就保證了數(shù)據(jù)的安全。

二愚争、邏輯卷管理器(LVM)

前面講解的用RAID磁盤陣列技術(shù)來管理磁盤設(shè)備映皆,雖然能有效提供磁盤設(shè)備的讀寫性能以及數(shù)據(jù)的安全性,但是硬盤設(shè)備分區(qū)或部署RAID磁盤陣列后轰枝,硬盤分區(qū)大小就難以調(diào)整捅彻,而LVM(邏輯卷管理器)技術(shù)可以允許用戶對硬盤資源進(jìn)行動態(tài)調(diào)整。

2.1 LVM概述

LVM(Logical Volume Manager)是Linux系統(tǒng)用于對硬盤分區(qū)進(jìn)行管理的一種機制鞍陨,創(chuàng)建初衷是為了解決硬盤設(shè)備在創(chuàng)建分區(qū)后不易修改分區(qū)大小的缺陷步淹。

盡管對傳統(tǒng)的硬盤分區(qū)進(jìn) 行強制擴(kuò)容或縮容從理論上來講是可行的,但是卻可能造成數(shù)據(jù)的丟失诚撵。

LVM架構(gòu)圖如下:

l1.png

LVM技術(shù)是在硬盤分區(qū)和文件系統(tǒng)之間添加了一個邏輯層缭裆,它提供了一個抽象的卷組,可以把多塊硬盤進(jìn)行卷組合并寿烟。這樣一來澈驼,用戶不必關(guān)心物理硬盤設(shè)備的底層架構(gòu)和布局,就可以實現(xiàn)對硬盤分區(qū)的動態(tài)調(diào)整筛武。

物理卷處于LVM中的最底層缝其,可以理解為物理硬盤、硬盤分區(qū)或者RAID磁盤陣列徘六。卷組建立在物理卷之上内边,一個卷組可以包含多個物理卷,而且在卷組創(chuàng)建之后也可以繼續(xù)向其中添加新的物理卷待锈。邏輯卷是用卷組中空閑的資源建立的漠其,并且邏輯卷在建立后可以動態(tài)地擴(kuò)展或縮小空間。

在生產(chǎn)環(huán)境中無法精確地評估每個硬盤分區(qū)在日后的使用情況,因此會導(dǎo)致 原先分配的硬盤分區(qū)不夠用辉懒。隨著業(yè)務(wù)的增加磁盤不夠用了需要擴(kuò)容阳惹,或者業(yè)務(wù)縮減我們需要對磁盤分區(qū)進(jìn)行精簡縮容等等,這些都可以通過LVM來解決眶俩。

部署LVM時莹汤,需要逐個配置物理卷、卷組和邏輯卷颠印。常用命令如下:

功能 物理卷管理 卷組管理 邏輯卷管理
掃描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
顯示 pvdisplay vgdisplay lvdisplay
刪除 pvremove vgremove lvremove
擴(kuò)展 vgextend lvextend
縮小 vgreduce lvreduce

2.2 案例實操

為了避免干擾纲岭,重新克隆一個虛擬機,并添加2塊磁盤(添加2塊的目的是為了演示將磁盤添加到LVM的卷組中线罕,實際情況可能會有更多的磁盤)止潮。

大概步驟為:先對這兩塊新硬盤進(jìn)行創(chuàng)建物理卷的操作,然后對這兩塊硬盤進(jìn)行卷組合并钞楼,接下來根據(jù)需求把合并后的卷組切割出一個約為 150MB 的邏輯卷設(shè)備喇闸,最后把這個邏輯卷設(shè)備格式化成 EXT4 文件系統(tǒng)后掛載使用。

2.2.1 部署LVM

(1)讓磁盤設(shè)備支持LVM

[root@origin ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0    1G  0 disk 
sdc               8:32   0    1G  0 disk 
sr0              11:0    1  3.9G  0 rom  /run/media/root/CentOS 7 x86_64
[root@origin ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@origin ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [19.51 GiB / 0    free]
  PV /dev/sdc                       lvm2 [1.00 GiB]
  PV /dev/sdb                       lvm2 [1.00 GiB]
  Total: 3 [21.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 2 [2.00 GiB]
[root@origin ~]#

查看剛才新家的2塊設(shè)備為:sdb询件、sdc燃乍。將其創(chuàng)建物理卷,并通過pvscan命令查看以創(chuàng)建物理卷宛琅。

(2)磁盤設(shè)備加入卷組

[root@origin ~]# vgcreate storage /dev/sdb /dev/sdc
  Volume group "storage" successfully created
[root@origin ~]# vgdisplay 
  --- Volume group ---
  VG Name               storage
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               1.99 GiB
  PE Size               4.00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1.99 GiB
  VG UUID               EKcctk-C1nM-Y2W8-s7pS-1bq8-W9ie-UTJM8Z
...省略部分內(nèi)容
[root@origin ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "storage" using metadata type lvm2
  Found volume group "centos" using metadata type lvm2
[root@origin ~]# 

用vgcreate創(chuàng)建名稱為storage的卷組刻蟹,并通過vgdisplay或vgscan可以查看。

(3)創(chuàng)建邏輯卷

切割出一個約為 150MB 的邏輯卷設(shè)備嘿辟。這里需要注意切割單位的問題舆瘪,在對邏輯卷進(jìn)行切割時有兩種計量單位。第一種是以容 量為單位红伦,所使用的參數(shù)為-L英古。例如,使用-L 150M生成一個大小為 150MB 的邏輯卷昙读。另外一種是以基本單元的個數(shù)為單位召调,所使用的參數(shù)為-l。每個基本單元的大小默認(rèn)為 4MB箕戳。例如某残,使用-l 37 可以生成一個大小為 37×4MB=148MB 的邏輯卷国撵。

[root@origin ~]# lvcreate -n vo -l 37 storage
  Logical volume "vo" created
[root@origin ~]# lvscan 
  ACTIVE            '/dev/storage/vo' [148.00 MiB] inherit
  ACTIVE            '/dev/centos/root' [17.51 GiB] inherit
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
[root@origin ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/storage/vo
  LV Name                vo
  VG Name                storage
  LV UUID                qziHT9-1qTT-1CRa-TIoq-cosz-Hhn0-jX5CVm
  LV Write Access        read/write
  LV Creation host, time origin, 2020-01-01 22:14:18 +0800
  LV Status              available
  '#' open                 0
  LV Size                148.00 MiB
  Current LE             37
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
...省略部分內(nèi)容
[root@origin ~]# 

通過lvcreate創(chuàng)建名稱為vo的邏輯卷后陵吸,通過lvdisplay可以查看/dev/storage/vo大小為剛設(shè)置的148M(LV Size 148.00 MiB)。

(4)格式化邏輯卷并掛載

[root@origin ~]# mkfs.ext4 /dev/storage/vo
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
38000 inodes, 151552 blocks
7577 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 
[root@origin ~]# mkdir /lvm
[root@origin ~]# mount /dev/storage/vo /lvm
[root@origin ~]# echo "/dev/storage/vo /lvm ext4 defaults 0 0" >> /etc/fstab
[root@origin ~]#

格式化邏輯卷后掛載到lvm目錄介牙,并把掛載信息寫入fstab文件使其開機自動生效壮虫。

(5)查看掛載狀態(tài)

[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M  140K  914M   1% /dev/shm
tmpfs                    914M  9.0M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/sr0                 3.9G  3.9G     0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/storage-vo   140M  1.6M  128M   2% /lvm
[root@origin ~]# echo "test">/lvm/test.txt
[root@origin ~]# ls /lvm/
lost+found  test.txt
[root@origin ~]# 

通過df命令就可以查看掛載成功,并可以成功寫入文件到lvm目錄下。

2.2.2 LVM擴(kuò)容

上一步創(chuàng)建的容量為148M囚似,下面將演示將其擴(kuò)展到300M

(1)卸載設(shè)備與掛載點的關(guān)聯(lián)

[root@origin ~]# umount /lvm
[root@origin ~]#

(2)擴(kuò)展邏輯卷

把上一個實驗中的邏輯卷 vo 擴(kuò)展至 300MB

[root@origin ~]# lvextend -L 300M /dev/storage/vo
  Extending logical volume vo to 300.00 MiB
  Logical volume vo successfully resized
[root@origin ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/storage/vo
  LV Name                vo
  VG Name                storage
  LV UUID                qziHT9-1qTT-1CRa-TIoq-cosz-Hhn0-jX5CVm
  LV Write Access        read/write
  LV Creation host, time origin, 2020-01-01 22:14:18 +0800
  LV Status              available
  '#' open                 0
  LV Size                300.00 MiB
 ...省略部分內(nèi)容

可以看到擴(kuò)展后/dev/storage/vo邏輯卷大小為300M剩拢。

(3)檢查硬盤完整性并重置硬盤容量

[root@origin ~]# e2fsck -f /dev/storage/vo
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/vo: 12/38000 files (0.0% non-contiguous), 10455/151552 blocks
[root@origin ~]# resize2fs /dev/storage/vo
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 307200 (1k) blocks.
The filesystem on /dev/storage/vo is now 307200 blocks long.
[root@origin ~]# 

(4)重新掛載設(shè)備

[root@origin ~]# mount -a
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M  140K  914M   1% /dev/shm
tmpfs                    914M  9.0M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/sr0                 3.9G  3.9G     0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/storage-vo   287M  2.1M  266M   1% /lvm
[root@origin ~]# 

可以看到擴(kuò)容后,lvm目錄的大小為300M(上圖實際顯示為287M)饶唤。

這樣就完成了邏輯卷的擴(kuò)容徐伐。

2.2.3 LVM縮小容

相較于擴(kuò)容邏輯卷,在對邏輯卷進(jìn)行縮容操作時募狂,其丟失數(shù)據(jù)的風(fēng)險更大办素,所以在生產(chǎn)環(huán)境中一定要提前備份數(shù)據(jù)。

為了保證數(shù)據(jù)安全性祸穷,Linux系統(tǒng)規(guī)定性穿,在對LVM邏輯卷進(jìn)行縮容操作之前,要先檢查文件系統(tǒng)的完整性雷滚。

上一步擴(kuò)容后lvm容量為300M需曾,本次演示將其縮容到100M,步驟如下:

(1)卸載文件系統(tǒng)

[root@origin ~]# umount /lvm
[root@origin ~]# 

(2)檢查文件系統(tǒng)完整性

[root@origin ~]#  e2fsck -f /dev/storage/vo
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/vo: 12/76000 files (0.0% non-contiguous), 15761/307200 blocks
[root@origin ~]# 

(3)縮容邏輯卷

把邏輯卷 vo 的容量減小到 100MB

[root@origin ~]# resize2fs /dev/storage/vo 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 102400 (1k) blocks.
The filesystem on /dev/storage/vo is now 102400 blocks long.
[root@origin ~]# lvreduce -L 100M /dev/storage/vo
  WARNING: Reducing active logical volume to 100.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vo? [y/n]: y  
  Reducing logical volume vo to 100.00 MiB
  Logical volume vo successfully resized
[root@origin ~]# 

(4)重新掛載文件系統(tǒng)

[root@origin ~]# mount -a
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G  4.5G   14G  26% /
devtmpfs                 905M     0  905M   0% /dev
tmpfs                    914M  140K  914M   1% /dev/shm
tmpfs                    914M  9.0M  905M   1% /run
tmpfs                    914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                497M  119M  379M  24% /boot
/dev/sr0                 3.9G  3.9G     0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/storage-vo    93M  1.6M   85M   2% /lvm
[root@origin ~]# 

可以看到lvm目錄已經(jīng)縮小到93M祈远,這樣就完成了邏輯卷的縮容操作呆万。

2.2.4 LVM快照功能

邏輯卷快照功能就類似于還原操作系統(tǒng),可以將邏輯卷狀態(tài)還原到指定時間點绊含。

LVM快照功能有2個特點:快照卷只能使用一次桑嘶,一旦執(zhí)行還原操作后立即自動刪除;快照卷的容量必須等同于邏輯卷的容量防止數(shù)據(jù)丟失躬充。

(1)查看當(dāng)前卷組信息

[root@origin ~]# vgdisplay 
  --- Volume group ---
  VG Name               storage
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.99 GiB
  PE Size               4.00 MiB
  Total PE              510
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       485 / 1.89 GiB
  ...省略部分內(nèi)容

可以看到卷組中已經(jīng)使用了100M逃顶,空閑容量還有1.89G。(Alloc PE / Size 25 / 100.00 MiB充甚, Free PE / Size 485 / 1.89 GiB)

(2)生成快照卷

[root@origin ~]# lvcreate -L 100M -s -n SNAP /dev/storage/vo
  Logical volume "SNAP" created
[root@origin ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/storage/vo
  LV Name                vo
  VG Name                storage
  LV UUID                qziHT9-1qTT-1CRa-TIoq-cosz-Hhn0-jX5CVm
  LV Write Access        read/write
  LV Creation host, time origin, 2020-01-01 22:14:18 +0800
  LV snapshot status     source of
                         SNAP [active]
  LV Status              available
  '#' open                 1
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/storage/SNAP
  LV Name                SNAP
  VG Name                storage
  LV UUID                TVfDRL-LnYd-z76K-fOuS-AD3C-Sw49-7jPgPo
  LV Write Access        read/write
  LV Creation host, time origin, 2020-01-01 22:40:10 +0800
  LV snapshot status     active destination for vo
  LV Status              available
  '#' open                 0
  LV Size                100.00 MiB
  Current LE             25
  COW-table size         100.00 MiB
  COW-table LE           25
  Allocated to snapshot  0.01%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
 ...省略部分內(nèi)容

通過lvcreate命令生成一個名為SNAP的快照邏輯卷以政。此時邏輯卷的存儲空間占用量為0.01%。(Allocated to snapshot 0.01%)

(3)邏輯卷中添加文件伴找,查看快照卷空間使用量

[root@origin ~]# dd if=/dev/zero of=/lvm/files count=1 bs=50M
1+0 records in
1+0 records out
52428800 bytes (52 MB) copied, 0.289668 s, 181 MB/s
[root@origin ~]# ls /lvm/
files  lost+found  test.txt
[root@origin ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
...省略部分內(nèi)容
/dev/mapper/storage-vo    93M   52M   35M  61% /lvm
[root@origin ~]# lvdisplay 
...省略部分內(nèi)容
  --- Logical volume ---
  LV Path                /dev/storage/SNAP
  LV Name                SNAP
  VG Name                storage
  LV UUID                TVfDRL-LnYd-z76K-fOuS-AD3C-Sw49-7jPgPo
  LV Write Access        read/write
  LV Creation host, time origin, 2020-01-01 22:40:10 +0800
  LV snapshot status     active destination for vo
  LV Status              available
  '#' open                 0
  LV Size                100.00 MiB
  Current LE             25
  COW-table size         100.00 MiB
  COW-table LE           25
  Allocated to snapshot  50.29%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
...省略部分內(nèi)容

在邏輯卷所掛載的目錄中創(chuàng)建一個50MB 的垃圾文件洪囤,然后再查看快照卷/dev/storage/SNAP和邏輯卷/dev/storage/vo的狀態(tài)〔钣停可以發(fā)現(xiàn)存儲空間的占用量都上升了估脆,快照卷占用量為:Allocated to snapshot 50.29%。

(4)通過快照卷還原邏輯卷

通過剛才創(chuàng)建的/dev/storage/SNAP快照卷衰倦,還原邏輯卷/dev/storage/vo的狀態(tài)袒炉。

還原之前先取消目錄掛載

[root@origin ~]# umount /lvm/
[root@origin ~]# lvconvert --merge /dev/storage/SNAP 
  Merging of volume SNAP started.
  vo: Merged: 72.9%
  vo: Merged: 100.0%
  Merge of snapshot into logical volume vo has finished.
  Logical volume "SNAP" successfully removed
[root@origin ~]# 

可以看到還原邏輯卷后,快照卷自動刪除了樊零,通過lvdisplay命令查看也不會再有/dev/storage/SNAP 我磁。

(5)重新掛載邏輯卷并查看文件

[root@origin ~]# mount -a
[root@origin ~]# ls /lvm/
lost+found  test.txt
[root@origin ~]# 

可以看到孽文,還原之后剛才創(chuàng)建files文件不見了,這樣就把邏輯卷還原到了創(chuàng)建快照時的狀態(tài)夺艰。

2.2.5 刪除邏輯卷

當(dāng)生產(chǎn)環(huán)境中想要重新部署LVM或者不再需要使用 LVM 時芋哭,可以刪除LVM。

需要提前備份好重要的數(shù)據(jù)信息郁副,然后依次刪除邏輯卷减牺、卷組、物理卷設(shè)備存谎,順序不可顛倒烹植。

(1)取消掛載

[root@origin ~]# umount /lvm/

取消邏輯卷與目錄的掛載關(guān)聯(lián),刪除配置文件中永久生效的設(shè)備參數(shù)愕贡,找到之前添加在/etc/fstab文件中的一行“/dev/storage/vo /lvm ext4 defaults 0 0”并刪除草雕。

(2)刪除邏輯卷

[root@origin ~]# lvremove /dev/storage/vo
Do you really want to remove active logical volume vo? [y/n]: y
  Logical volume "vo" successfully removed
[root@origin ~]#

(3)刪除卷組

[root@origin ~]# vgremove storage
  Volume group "storage" successfully removed
[root@origin ~]# 

只寫卷組名稱即可,不需要設(shè)備的絕對路徑固以。

(4)刪除物理卷

[root@origin ~]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped
[root@origin ~]# 

在上述操作執(zhí)行完畢之后墩虹,再執(zhí)行 lvdisplay、vgdisplay憨琳、pvdisplay 命令來查看 LVM 的信 息時就不會再看到信息了诫钓,說明刪除成功。

通過上文和本文的演示篙螟,基本掌握了centos7下磁盤管理相關(guān)操作菌湃,如果非運維人員不一定要掌握的非常深刻,理解即可遍略。

本文講了很多磁盤相關(guān)的命令惧所,需要多敲幾篇自然就熟悉了。下一篇文章再補充講解下SSH服務(wù)相關(guān)的知識绪杏,然后就開始講解應(yīng)用服務(wù)的部署和使用了(如apache下愈、郵件系統(tǒng)、mysql蕾久、動態(tài)網(wǎng)站部署等)势似。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市僧著,隨后出現(xiàn)的幾起案子履因,更是在濱河造成了極大的恐慌,老刑警劉巖盹愚,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栅迄,死亡現(xiàn)場離奇詭異,居然都是意外死亡杯拐,警方通過查閱死者的電腦和手機霞篡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來端逼,“玉大人朗兵,你說我怎么就攤上這事《ヌ玻” “怎么了余掖?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長礁鲁。 經(jīng)常有香客問我盐欺,道長,這世上最難降的妖魔是什么仅醇? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任冗美,我火速辦了婚禮,結(jié)果婚禮上析二,老公的妹妹穿的比我還像新娘粉洼。我一直安慰自己,他們只是感情好叶摄,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布属韧。 她就那樣靜靜地躺著,像睡著了一般蛤吓。 火紅的嫁衣襯著肌膚如雪宵喂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天会傲,我揣著相機與錄音锅棕,去河邊找鬼。 笑死淌山,一個胖子當(dāng)著我的面吹牛哲戚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艾岂,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼顺少,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了王浴?” 一聲冷哼從身側(cè)響起脆炎,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氓辣,沒想到半個月后秒裕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡钞啸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年几蜻,在試婚紗的時候發(fā)現(xiàn)自己被綠了喇潘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡梭稚,死狀恐怖颖低,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弧烤,我是刑警寧澤忱屑,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站暇昂,受9級特大地震影響莺戒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜急波,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一从铲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澄暮,春花似錦食店、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗅定,卻和暖如春自娩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渠退。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工忙迁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碎乃。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓姊扔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親梅誓。 傳聞我的和親對象是個殘疾皇子恰梢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353