本文通過以下習題,鞏固所學raid和lvm知識:
20160829
1、創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄
2、創建由三塊硬盤組成的可用空間為2G的RAID5設備,要求其chunk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄
20160831
1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
raid習題:
復習raid相關知識
常用raid級別:
RAID-0 | RAID-1 | ||
讀、寫性能提升; | 讀性能提升、寫性能略有下降; | ||
可用空間: N*min(S1,S2,…) | 可用空間: 1*min(S1,S2,…) | ||
無容錯能力 | 有冗余能力 | ||
最少磁盤數: 2, 2+ | 最少磁盤數: 2, 2N | ||
RAID-5 | |||
讀、寫性能提升 | |||
可用空間: (N-1)*min(S1,S2,…) | |||
有容錯能力:允許最多1塊磁盤損壞 | |||
最少磁盤數: 3, 3+ |
Linux raid命令mdadm:
命令的語法格式: mdadm [mode] <raiddevice> [options]<component-devices>
常用選項:
創建(create):-C | |
-n #: 使用#個塊設備來創建此RAID; | |
-l #:指明要創建的RAID的級別; | |
-a {yes|no}:自動創建目標RAID設備的設備文件; | |
-c CHUNK_SIZE: 指明塊大??; | |
-x #: 指明空閑盤的個數; | |
裝配 (Assemble): -A | |
監控(follow): -F | |
管理: -f, -r, -a | |
-f: 標記指定磁盤為損壞 | |
-a: 添加磁盤 | |
-r: 移除磁盤 | |
顯示raid的詳細信息:-D | |
停止md設備:-S |
1、創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄
本題主要是理解RAID1特性:鏡像卷。1G的raid1需要2個1G硬盤。
步驟1:fdisk設置三個分區,注意t修改分區類型fd
步驟2:創建raid,-l 指定raid級別1; -n 指定2個磁盤設備;-x指定一個空閑盤
[root@IP70-CentOS7 ~]# >>mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1 /dev/sdb{1,2,3}
步驟3:格式化分區為ext4
[root@IP70-CentOS7 ~]# >>mkfs -t ext4 /dev/md1
步驟4:blkid查詢UUID,并編輯/etc/fstab文件,使開機可掛載(mkdir創建掛載點/backup)
完成檢驗:
2、創建由三塊硬盤組成的可用空間為2G的RAID5設備,要求其chunk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄
與上題類似,只是步驟2,-l指定raid 5,-c 256
[root@IP70-CentOS7 ~]# >>mdadm -C /dev/md2 -a yes -l 5 -n 3 -c 256 /dev/sdc{1,2,3}
完成檢驗:
lvm習題
復習lvm相關知識:
LVM(邏輯分區管理)中的幾個概念:
PV (physical volume):物理卷在邏輯卷管理系統最底層,可為整個物理硬盤或實際物理硬盤上的分區。
VG (volume group):卷組建立在物理卷上,一卷組中至少要包括一物理卷,卷組建立后可動態的添加卷到卷組中,一個邏輯卷管理系統工程中可有多個卷組。
LV (logical volume):邏輯卷建立在卷組基礎上,卷組中未分配空間可用于建立新的邏輯卷,邏輯卷建立后可以動態擴展和縮小空間。
PE (physical extent):物理區域是物理卷中可用于分配的最小存儲單元,物理區域大小在建立卷組時指定,一旦確定不能更改,同一卷組所有物理卷的物理區域大小需一致,新的pv加入到vg后,pe的大小自動更改為vg中定義的pe大小。
LE (logical extent):邏輯區域是邏輯卷中可用于分配的最小存儲單元,邏輯區域的大小取決于邏輯卷所在卷組中的物理區域的大小。
1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷 testlv;掛載至/users目錄
步驟1:fdisk創建分區,并設置分區格式為8e
步驟2:pvcreate命令創建pv
[root@IP70-CentOS7 ~]# >>pvcreate /dev/sd{b,c}{1,2,3}
步驟3:創建vg,-s 指定PE大小16dMB
[root@IP70-CentOS7 ~]# >>vgcreate -s 16MB testvg /dev/sd{b,c}{1,2} /dev/sdb3
步驟4:創建lv
步驟5:格式化lv
步驟6:創建/users,并進行掛載
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
[root@IP70-CentOS7 ~]# >>useradd -d /users/archlinux archlinux [root@IP70-CentOS7 ~]# >>su - archlinux [archlinux@IP70-CentOS7 ~]$ >>cp -a /etc/pam.d ~/ [archlinux@IP70-CentOS7 ~]$ >>ll ~ total 4 drwxr-xr-x. 2 archlinux archlinux 4096 Aug 15 19:16 pam.d [archlinux@IP70-CentOS7 ~]$ >>pwd /users/archlinux [archlinux@IP70-CentOS7 ~]$ >>
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
-
3.1. 擴容lv,需要先考慮vg是否有足夠的未使用空間;
-
3.2. 擴容相對安全,可以不需要取消掛載;
-
3.3. 可以使用-r選項進行擴容,使添加的空間與原空間同步文件系統;
-
3.4. 擴容大小必須是PE size的倍數。
[root@IP70-CentOS7 ~]# >>lvextend -r -L 7G /dev/testvg/testlv
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
-
4.1. 收縮lv空間有風險,強烈建議先備份數據;
-
4.2. 已使用數據大小,必須小于收縮后的空間大??;
-
4.3. 必須取消掛載后進行;
-
4.4. 步驟為: umount取消掛載==>e2fsck 檢測修復==>resize2fs重設文件系統大小==>lvreduce收縮lv
[root@IP70-CentOS7 ~]# >>umount /dev/testvg/testlv [root@IP70-CentOS7 ~]# >>e2fsck -f /dev/testvg/testlv [root@IP70-CentOS7 ~]# >>resize2fs /dev/testvg/testlv 3G [root@IP70-CentOS7 ~]# >>lvreduce -L 3G /dev/testvg/testlv [root@IP70-CentOS7 ~]# >>mount /dev/testvg/testlv /users/
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
5.1. 快照僅作測試,不能代替備份;
5.2. 快照是特殊的邏輯卷;
5.3. 快照與被快照的lv共用部分PE,所以必須在同一個vg上;
5.4 快照生成后,只有數據發生改變(快照lv 或被快照lv任一),才會消耗空間。
創建快照:
首先,我們對testlv寫入1G的文件:
查看vg并對testlv創建快照:
解讀:
1. 命令vgs可以看到剩余vg空間16.92g,對testlv創建快照前,要先查看testlv的vg是否有空閑空間可用;
2. -L 1G 指定創建快照的大小為1G (等同 –size 1G);
3. -s 創建快照選項 (等同–snapshot);
4. -n data_snap 創建快照的名稱 (等同–name data_snap);
5. /dev/testvg/testlv 對此lv做快照。
即:對邏輯卷/dev/testvg/testlv進行創建大小為1G,名字為data_snap的快照。
創建命令也可以使用如下命令,效果是一樣的:
[root@IP70-CentOS7 ~]# >>lvcreate --size 1G --snapshot --name data_snap /dev/testvg/testlv
此時,我們查看快照屬性:
再來對上面圖片中標注的要點作個清楚的說明:
-
快照的路徑;
-
快照lv名稱;
-
當前使用的卷組vg名;
-
讀寫模式下的快照卷,我們甚至可以掛載并使用該卷;
-
快照創建時間。這個很重要,因為快照將跟蹤此時間之后的每個改變;
-
該快照屬于testlv邏輯卷;
-
邏輯卷在線并可用;
-
我們錄制快照的源卷大小;
-
寫時復制表大小,Cow = copy on Write,這是說對testlv卷所作的任何改變都會寫入此快照;
-
當前使用的快照大小,
-
給出快照組塊的大小。
我們再給testlv創建1G的文件,并查看快照:
我們看到,源lv寫入數據太大,快照就會爆滿,如果快照邏輯卷滿了,它就會自動丟失新的數據,我們就不能再使用了。最好的方法就是在創建快照時,創建一個和源一樣大小的快照卷。testlv的大小是3GB,如果我們創建一個3GB大小的快照,它就永遠都不會像上面那樣超載,因為它有足夠的空間來錄制你的邏輯卷的快照。
快照的本質是lv卷,所以我們同樣可以對快照進行擴展和收縮。
原創文章,作者:昭其,如若轉載,請注明出處:http://www.www58058.com/42596