分享一個RAID+LVC的組合

狗福發表於2016-07-18
之前解決過這麼一個需求:伺服器的一塊或者兩塊磁碟壞了,伺服器裡的資料不會丟。並且當磁碟空間不足的時候可以非常方便的擴大容量。
首先,先來介紹一下RAID
RAID,廉價的磁碟陣列
RAID分為硬體RAID和軟體RAID

硬體RAID:
速度快,效能好,支援熱插拔。
需專門的RAID磁碟陣列卡,價格昂貴,還需要配合相應的驅動

軟體RAID:
通過Linux核心來實現。
使用mdadm軟體模擬磁碟列陣功能。
無需專門硬體,價效比較好
裝置檔案識別標識是/dev/md0

根據可靠性、效能和成本對RAID劃分了等級:RAID0/1/5/6/10/01

級別 RAID0 RAID1 RAID5 RAID6
磁碟數 >=2 2 >=3 >=4
容錯功能 較強
讀寫速度 最快 寫入較慢 較快 較快
磁碟空間利用 100% 50% n-1 n-2

然後再來講一下LVM
LVM主要就是跟傳統分割槽作比較

傳統分割槽 LVM邏輯卷管理
磁碟空間獨立性 不能充分利用,尤其是一個fs
只能對應一個分割槽
多次盤PV組成儲存池VG,再根據應
用細分邏輯卷LV,空間利用率提高
空間擴充套件性 重新分割槽 採取動態或靜態線上擴充套件卷組容量
資料備份 業務繁忙時,IO介面讀寫頻繁 可採取快照方式捕捉某一邏輯卷的
瞬間精確拷貝已完成線上備份工作
使用者使用性 分割槽標識無法滿足大量使用者需求。 可根據使用者需求定義LV邏輯卷的卷標

所以根據這些,我做出如下方案:
1.將10塊磁碟做成RAID5,2塊做熱備
2.然後將RAID5做成PV,然後建立單PV的VG,從而做成LVM管理,從VG中劃分出LV供公司使用
當空間不夠時,將新磁碟做成RAID5,然後也做成PV,並且加入到這個VG,那麼就達到了擴容的目的

建立RAID5

首先檢視磁碟裝置檔案
[root@memeda ~]# ll /dev/sd*
brw-rw—-. 1 root disk 8, 0 Sep 13 04:08 /dev/sda 
brw-rw—-. 1 root disk 8, 1 Sep 13 04:08 /dev/sda1 
brw-rw—-. 1 root disk 8, 2 Sep 13 04:08 /dev/sda2 
brw-rw—-. 1 root disk 8, 3 Sep 13 04:08 /dev/sda3 
brw-rw—-. 1 root disk 8, 16 Sep 13 04:08 /dev/sdb 
brw-rw—-. 1 root disk 8, 32 Sep 13 04:08 /dev/sdc 
brw-rw—-. 1 root disk 8, 48 Sep 13 04:08 /dev/sdd 
brw-rw—-. 1 root disk 8, 64 Sep 13 04:08 /dev/sde 
brw-rw—-. 1 root disk 8, 80 Sep 13 04:08 /dev/sdf 
brw-rw—-. 1 root disk 8, 96 Sep 13 04:08 /dev/sdg 
brw-rw—-. 1 root disk 8, 112 Sep 13 04:08 /dev/sdh 
brw-rw—-. 1 root disk 8, 128 Sep 13 04:08 /dev/sdi 
brw-rw—-. 1 root disk 8, 144 Sep 13 04:08 /dev/sdj 
brw-rw—-. 1 root disk 8, 160 Sep 13 04:08 /dev/sdk
sda為系統盤,從sdb到sdk正好10塊磁碟
[root@memeda /]# mdadm -C /dev/md0 -l5 -n8 -x2 /dev/sd[bcdefghijk]     //RAID級別5,兩塊熱備盤
mdadm: Defaulting to version 1.2 metadata 
mdadm: array /dev/md0 started. 
[root@memeda /]# cat /proc/mdstat
Personalities : [raid10] [raid6] [raid5] [raid4] 
md0 : active raid5 sdi[10]sdk[9](S) sdj[8](S)sdh[6] sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0] 
58688000 blocks super 1.2 level 5, 512k chunk, algorithm 2 [8/7] [UUUUUUU_] 
[==>………………] recovery = 12.3% (1037824/8384000) finish=0.9min speed=129728K/sec 

unused devices: <none>
RAID正在建立,sdk、sdj為熱備盤

再次檢視
[root@memeda /]# cat /proc/mdstat 
Personalities : [raid10] [raid6] [raid5] [raid4] 
md0 : active raid5 sdi[10] sdk[9](S) sdj[8](S) sdh[6] sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0] 
58688000 blocks super 1.2 level 5, 512k chunk, algorithm 2 [8/8] [UUUUUUUU] 

unused devices: <none>
RAID建立完成

檢視RAID詳細資訊
[root@memeda /]# mdadm -D /dev/md0 
/dev/md0: 
Version : 1.2 
Creation Time : Sun Sep 13 04:22:23 2015 
Raid Level : raid5 
Array Size : 58688000 (55.97 GiB 60.10 GB) 
Used Dev Size : 8384000 (8.00 GiB 8.59 GB) 
Raid Devices : 8 
Total Devices : 10 
Persistence : Superblock is persistent 

Update Time : Sun Sep 13 04:25:27 2015 
State : clean 
Active Devices : 8 
Working Devices : 10 
Failed Devices : 0 
Spare Devices : 2 

Layout : left-symmetric 
Chunk Size : 512K 

Name : memeda:0 (local to host memeda) 
UUID : 619fa09f:aca65c16:d6d752a4:84d63d1d 
Events : 18 

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 
4 8 80 4 active sync /dev/sdf 
5 8 96 5 active sync /dev/sdg 
6 8 112 6 active sync /dev/sdh 
10 8 128 7 active sync /dev/sdi 

8 8 144 – spare /dev/sdj 
9 8 160 – spare /dev/sdk

掃描RAID配置資訊,並重定向成mdadm.conf檔案
[root@memeda /]# mdadm -Ds 
ARRAY /dev/md0 metadata=1.2 spares=2 name=memeda:0 UUID=619fa09f:aca65c16:d6d752a4:84d63d1d 
[root@memeda /]# mdadm -Ds>/etc/mdadm.conf
[root@memeda /]# cat /etc/mdadm.conf 
ARRAY /dev/md0 metadata=1.2 spares=2 name=memeda:0 UUID=619fa09f:aca65c16:d6d752a4:84d63d1d

建立LVM

1、建立PV
[root@memeda /]# pvcreate /dev/md0 
Physical volume “/dev/md0” successfully created
檢視PV資訊
[root@memeda /]# pvscan 
PV /dev/md0 lvm2 [55.97 GiB]
Total: 1 [55.97 GiB] / in use: 0 [0 ] / in no VG: 1 [55.97 GiB] 
[root@memeda /]# pvdisplay 
“/dev/md0” is a new physical volume of “55.97 GiB” 
— NEW Physical volume — 
PV Name /dev/md0 
VG Name 
PV Size 55.97 GiB 
Allocatable NO 
PE Size 0 
Total PE 0 
Free PE 0 
Allocated PE 0 
PV UUID rd3YxS-wSoy-k1EH-RzlV-ad5C-T0rk-SRFcCi

2、建立VG
[root@memeda /]# vgcreate laoliu /dev/md0 
Volume group “laoliu” successfully created

再次檢視PV
[root@memeda /]# pvscan 
PV /dev/md0 VG laoliu lvm2 [55.96 GiB / 55.96 GiB free] 
Total: 1 [55.96 GiB] / in use: 1 [55.96 GiB] / in no VG: 0 [0 ]
[root@memeda /]# pvdisplay 
— Physical volume — 
PV Name /dev/md0 
VG Name laoliu 
PV Size 55.97 GiB / not usable 4.50 MiB 
Allocatable yes 
PE Size 4.00 MiB 
Total PE 14327 
Free PE 14327 
Allocated PE 0 
PV UUID rd3YxS-wSoy-k1EH-RzlV-ad5C-T0rk-SRFcCi

檢視VG
[root@memeda /]# vgscan 
Reading all physical volumes. This may take a while… 
Found volume group “laoliu” using metadata type lvm2
[root@memeda /]# vgdisplay 
— Volume group — 
VG Name laoliu 
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 55.96 GiB
PE Size 4.00 MiB
Total PE 14327 
Alloc PE / Size 0 / 0 
Free PE / Size 14327 / 55.96 GiB 
VG UUID vX1ADB-bFa7-vjoQ-Q0KJ-B8mz-7Vpn-0MSMuy

3、從卷組劃分LV使用
[root@memeda /]# lvcreate -L 5G -n laoliu_lv1 laoliu     //-L大小5G,-n name邏輯卷名laoliu_lv_1
Logical volume “laoliu_lv1” created
檢視lv資訊
[root@memeda /]# lvscan 
ACTIVE `/dev/laoliu/laoliu_lv1` [5.00 GiB] inherit 
[root@memeda /]# lvdisplay /dev/laoliu/laoliu_lv1 
— Logical volume — 
LV Path /dev/laoliu/laoliu_lv1 
LV Name laoliu_lv1 
VG Name laoliu
LV UUID HyEfed-F9vw-oETY-Z5Kc-0DPt-vQ5G-tUF3dk 
LV Write Access read/write 
LV Creation host, time memeda, 2015-09-13 04:48:28 +0800 
LV Status available 
# open 0 
LV Size 5.00 GiB 
Current LE 1280 
Segments 1 
Allocation inherit 
Read ahead sectors auto 
– currently set to 14336 
Block device 253:0

4、格式化LV,掛載使用
[root@memeda /]# mkfs.ext4 /dev/laoliu/laoliu_lv1
[root@memeda /]# mkdir /lv1 
[root@memeda /]# mount /dev/laoliu/laoliu_lv1 /lv1/









相關文章