Linux系統(tǒng)安全 | Linux下邏輯卷LVM的管理和RAID磁盤陣列
原創(chuàng) 謝公子 [謝公子學(xué)安全](javascript:void(0);) 昨天
轉(zhuǎn)載自公眾號(hào):謝公子學(xué)安全
LVM簡(jiǎn)介
LVM的創(chuàng)建
LVM的拉伸
LVM的縮小
LVM的刪除
RAID磁盤陣列的添加
LVM簡(jiǎn)介LVM(Logical Volume Manager) 邏輯卷管理器吭净,可以動(dòng)態(tài)調(diào)整磁盤容量,提高磁盤管理靈活性艺晴。絕大多數(shù)分區(qū)可以基于LVM創(chuàng)建兽赁,但是 /boot 掛載分區(qū)不能基于LVM創(chuàng)建。LVM底層文件系統(tǒng)ID為8e擎勘。
LVM的創(chuàng)建步驟:
在創(chuàng)建磁盤分區(qū)的第二步咱揍,創(chuàng)建完分區(qū)后輸入 t 選擇分區(qū)然后修改分區(qū)類型,再輸入對(duì)應(yīng)的分區(qū)類型ID: 8e 即可棚饵。
將磁盤分區(qū)初始化為物理卷煤裙,pvcreate /dev/sdb1 ,意思是將sdb1分區(qū)初始化為物理卷
將初始化的物理卷加入卷組噪漾,vgcreate myvg /dev/sdb1 硼砰,意思是將sdb1物理卷組成myvg卷組
在已有的卷組中,創(chuàng)建邏輯卷怪与,lvcreate -L 1G -n mylv myvg 夺刑,意思是將myvg卷組中抽出1G的空間建立邏輯卷mylv。然后給邏輯卷分配文件系統(tǒng) mkfs.ext4 /dev/myvg/mylv
修改 /etc/fstab 文件分别,重新掛載所有 mount -a
注:當(dāng)用一整塊硬盤做邏輯卷時(shí)遍愿,第一步的創(chuàng)建分區(qū)和指定分區(qū)類型這一步可以省略,直接從第二步開始耘斩,將整塊硬盤初始化為物理卷沼填。
LVM的組成:
PV(Physical Volume) 物理卷,物理卷可以由整個(gè)硬盤也可以是獨(dú)立分區(qū)轉(zhuǎn)化而成括授。物理卷包括了許多默認(rèn)大小為4MB的PE(Physical Extent)基本單元
VG(Volumn Group) 卷組坞笙,卷組由一個(gè)或多個(gè)物理卷組成的整體
LV(Logical Volume) 邏輯卷,從卷組中抽出一部分空間荚虚,可以建立文件系統(tǒng)
| 功能 | 物理卷PV | 卷組VG | 邏輯卷LV | | ---- | -------- | -------- | --------------------- | | 創(chuàng)建 | pvcreate | vgcreate | lvcreate | | 刪除 | pvremove | vgremove | lvremove | | 增大 | | vgextend | lvextend / lvresize | | 減小 | | vgreduce | lvresize | | 顯示 | pvs | vgs | lvs |
01一:LVM的創(chuàng)建
第一步:創(chuàng)建分區(qū)薛夜,并將其分區(qū)類型修改為L(zhǎng)VM
第二步:磁盤分區(qū)初始化為物理卷,pvcreate /dev/sdb1
第三步:將初始化的物理卷加入卷組版述,vgcreate myvg /dev/sdb1
第四步:在已有的卷組中梯澜,創(chuàng)建邏輯卷,lvcreate -L 1G -n mylv myvg 渴析。
使用命令 lvs 查看下我們創(chuàng)建的邏輯卷 mylv
給邏輯卷分配文件系統(tǒng) mkfs.ext4 /dev/myvg/mylv ,并且 blkid 查看信息晚伙。Linux中默認(rèn)將所有邏輯卷鏈接到 /dev/mapper/ 目錄下。/dev/mapper/myvg_mylv 是 /dev/myvg/mylv 是軟連接
第五步:修改/etc/fstab 文件俭茧,將邏輯卷掛載信息加進(jìn)去咆疗。
mount -a 重新掛載,df -Th 查看母债,可以看到午磁,我們的 /dev/mapper/myvg-mylv 已經(jīng)成功掛載上了
假如我們要再建立一個(gè)邏輯卷,那么一二三步都可以不用做,直接第四步漓踢,在已有的卷組中創(chuàng)建邏輯券(前提是你的卷組還有剩余空間)牵署,然后剩余的步驟一樣漏隐。我之后又創(chuàng)建了一個(gè)xfs文件系統(tǒng)的邏輯卷 mylv2 喧半。
02二:LVM的拉伸
拉伸有兩條命令:lvextend 、lvresize 青责。兩條命令相同的用法挺据。當(dāng)卷組空間足夠分配給邏輯卷時(shí),拉伸LVM分為兩步:
拉伸邏輯卷 lvresize / lvextend -L 300M /dev/myvg/mylv
通知文件系統(tǒng) resize2fs /dev/myvg/mylv (EXT文件系統(tǒng)) xfs_growfs /dev/myvg/mylv (XFS文件系統(tǒng))
第一步:拉伸之前脖隶,先用vgs查看卷組中剩余空間的大小扁耐,可以看到,我們還剩余1.5G
我們之前分配的 mylv 是1G 产阱,mylv2是500M 婉称,現(xiàn)在我們把mylv拉伸到1.9G,mylv2拉伸到1.1G构蹬。這樣王暗,就用完了卷組的空間了
lvresize -L 1.9G /dev/myvg/mylv
lvresize -L 1.09G /dev/myvg/mylv2
第二步:擴(kuò)展完之后,我們要去通知我們的文件系統(tǒng)庄敛,通知完之后俗壹,可以看到邏輯卷的空間變大了 resize2fs /dev/myvg/mylv
xfs_growfs /dev/myvg/mylv2
可以看到,我們的卷組的空間已經(jīng)用完了藻烤。如果我們還想擴(kuò)容的話绷雏,我們就需要擴(kuò)大我們的卷組空間了
卷組的擴(kuò)大:
擴(kuò)大卷組空間,先新建一個(gè)分區(qū)怖亭,初始化為物理卷涎显,然后加入 myvg 卷組中⌒诵桑可以看到期吓,我們卷組的空間又變大了。接下來峭跳,對(duì)LVM進(jìn)行擴(kuò)容和上面的一樣膘婶。vgextend myvg /dev/sdb2
03三:LVM的縮小
將掛載的文件系統(tǒng)下線 umount /mnt/lvm
強(qiáng)制磁盤檢查 e2fsck -f /dev/myvg/mylv
通知文件系統(tǒng)縮小 resize2fs /dev/myvg/mylv 100M
縮小邏輯卷 lvresize -L 100M /dev/myvg/mylv
重新掛載 mount -a
注:xfs文件系統(tǒng)的邏輯卷不能縮小
注:當(dāng)給文件系統(tǒng)通知的是400M ,而實(shí)際縮小到600M蛀醉,這樣最后掛載悬襟,實(shí)際只有400M,也就是浪費(fèi)了200M 當(dāng)給文件系統(tǒng)通知的600M ,而實(shí)際縮小到400M 拯刁,這樣掛載不上脊岳,會(huì)報(bào)錯(cuò) 。所以給文件系統(tǒng)通知的大小,和實(shí)際縮小的大小一定要相同割捅。
04四:LVM的刪除
刪除或注釋磁盤掛載信息 vim /etc/fstab 奶躯;將掛載的文件系統(tǒng)下線 umount /mnt/lvm
刪除邏輯卷 lvremove /dev/myvg/mylv ;刪除卷組 vgremove myvg 亿驾;刪除卷組底層的物理卷 pvremove /dev/sdb1
刪除磁盤分區(qū) fdisk /dev/sdb 嘹黔,一路狂按d和enter
刷新磁盤分區(qū),partprobe /dev/sdb 如果報(bào)錯(cuò)莫瞬,在確保主機(jī)其他文件系統(tǒng)正常的情況下儡蔓,重啟主機(jī)
05五:RAID磁盤陣列的添加
RAID(Redundant Arrays of Inexpensive Disks)容錯(cuò)式廉價(jià)磁盤陣列。RAID技術(shù)可以通過軟件或硬件實(shí)現(xiàn)疼邀,將多個(gè)磁盤整合成為一個(gè)較大的磁盤裝置喂江,該裝置不僅有存儲(chǔ)功能,還具有數(shù)據(jù)保護(hù)的功能旁振。RAID具有多個(gè)不同的等級(jí)获询,每個(gè)等級(jí)的對(duì)整合后的磁盤實(shí)現(xiàn)不同的功能。常用等級(jí)有RAID5
RAID的建立 1:利用3塊硬盤組建RAID5 mdadm -C /dev/md0 -n3 -l5 /dev/sd[bcd] 拐袜。并且查看其狀態(tài) mdadm -D /dev/md0 或 cat /proc/mdstat
-C 創(chuàng)建陣列存儲(chǔ)設(shè)備
-n 添加磁盤的數(shù)量
-l RAID的等級(jí)
2:創(chuàng)建配置文件 /etc/mdadm.conf 吉嚣,并且寫入配置信息 3:然后把md0設(shè)備建立邏輯卷,修改配置文件 fstab阻肿,重新掛載
第一步:建立RAID存儲(chǔ)設(shè)備md0瓦戚,并且查看其狀態(tài),記住UUID
第二步:創(chuàng)建配置文件 /etc/mdadm.conf 丛塌,并且寫入以下的信息
ARRAY /dev/md0 UUID=417c8b54:e78b0978:35ea0e66:63fa5f12
第三步:創(chuàng)建邏輯卷较解,修改配置文件,重新全部掛載赴邻∮∠危可以看到,我們的基于RAID的邏輯卷已經(jīng)成功掛載了姥敛。
/dev/myraidvg/myraidlv /mnt/raid xfs defaults 0 0
模擬RAID故障:
模擬其中一塊硬盤掛了之后奸焙,數(shù)據(jù)仍然完好無損,然后重新加入一塊硬盤彤敛。
先查看 RAID 狀態(tài) 与帆,可以看到,三塊硬盤都是正常的墨榄。cat /proc/mdstat
我們先往邏輯卷里寫入900M的文件玄糟,模擬生產(chǎn)情況下的數(shù)據(jù)
我們模擬其中的 sdb 掛了
mdadm --manage /dev/md0 --fail /dev/sdb
--fail 將設(shè)備設(shè)定為出錯(cuò)狀態(tài)
--remove 將設(shè)備從陣列中移除
--add 添加設(shè)備進(jìn)入陣列
可以看到 ,sdb已經(jīng)掛了 袄秩。但是我們的900M的文件還是依然完好無損
那我們先把掛了的 sdb 移除阵翎,然后加上一個(gè)好的 sde 逢并。madam --manage /dev/md0 --remove /dev/sdb madam --manage /dev/md0 --add /dev/sde 可以看到,加上sde后郭卫,三個(gè)硬盤又組成了RAID砍聊。sde會(huì)同步其他兩塊硬盤上的數(shù)據(jù)
RAID陣列的停用
umount /mnt/raid 卸載設(shè)備 ; 修改 /etc/fstab 文件中的配置信息
刪除陣列中創(chuàng)建的邏輯卷,卷組贰军,物理卷: lvremove玻蝌,vgremove,pvremove
刪除 /etc/mdadm.conf 配置文件谓形,取消設(shè)備開機(jī)加載陣列
停止 md0: mdadm -S /dev/md0
驗(yàn)證 cat /proc/mdstat mdadm -D /dev/md0
注:如果取消掛載設(shè)備的時(shí)候灶伊,顯示設(shè)備正忙,可以使用 fuser -mv /mnt/xxx 看看是哪個(gè)進(jìn)程在使用這個(gè)掛載點(diǎn)寒跳,然后殺死這個(gè)進(jìn)程即可。
相關(guān)文章:Linux系統(tǒng)安全|Linux下磁盤分區(qū)卸載和磁盤配額
END