磁盤陣列及邏輯卷的創建

磁盤陣列

軟件RAID的實現

mdadm:模式化的工具

命令的語法格式:mdadm[mode] <raiddevice> [options] <component-devices>

支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

模式:

創建:-C

裝配: -A

監控: -F

管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>: 任意塊設備

-C: 創建模式

-n #: 使用#個塊設備來創建此RAID

-l #:指明要創建的RAID的級別

-a {yes|no}:自動創建目標RAID設備的設備文件

-c CHUNK_SIZE: 指明塊大小,單位k

-x #: 指明空閑盤的個數

-D:顯示raid的詳細信息

mdadm-D /dev/md#

管理模式:

-f: 標記指定磁盤為損壞

-a: 添加磁盤

-r: 移除磁盤

觀察md的狀態:

cat /proc/mdstat

使用mdadm創建并定義RAID設備

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

用文件系統對每個RAID設備進行格式化

mke2fs -j /dev/md0

測試RAID設備

使用mdadm檢查RAID設備的狀況

mdadm–detail|D/dev/md0

增加新的成員

mdadm–G /dev/md0 –n4 -a /dev/sdf1

 

軟RAID測試和修復

模擬磁盤故障

mdadm /dev/md0 -f /dev/sda1

移除磁盤

mdadm /dev/md0 –r /dev/sda1

從軟件RAID磁盤修復磁盤故障

  • 替換出故障的磁盤然后開機
  • 在備用驅動器上重建分區
  • mdadm /dev/md0 -a /dev/sda1

mdadm、/proc/mdstat及系統日志信息

 

軟RAID管理

生成配置文件:mdadm –D –s >> /etc/mdadm.conf

停止設備:mdadm –S /dev/md0

激活設備:mdadm –A –s /dev/md0 激活

強制啟動:mdadm –R /dev/md0

刪除raid信息:mdadm –zero-superblock /dev/sdb1

 

 

創建raid5

準備四塊磁盤,分別是,sdc1、sdd1、sde1、和sdb1 大小為20G

1.在sdb1上創建分區,大小為20G,

Command (m for help): p

 

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xfc18b8bc

 

Device Boot????? Start???????? End????? Blocks?? Id? System

/dev/sdb1?????????????? 1??????? 2612??? 20980858+? 83? Linux

 

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raid autodetect)

 

Command (m for help): p

 

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xfc18b8bc

 

Device Boot????? Start???????? End????? Blocks?? Id? System

/dev/sdb1?????????????? 1??????? 2612??? 20980858+? fd? Linux raid autodetect

 

Command (m for help): w

 

partx -a

 

2.根據sdb1的分區表設置,分別復制分區和標志位

dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446

dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446

dd if=/dev/sdb of=/dev/sde bs=1 count=66 skip=446 seek=446

3.創建raid5

[root@centos6 ~]#mdadm -C /dev/md5 -a yes -l5 -c 32 -n 3 -x1 /dev/sd{c1,d1,e1,b1}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md5 started.

4.創建文件系統

[root@centos6 ~]#mkfs.ext4 /dev/md5

5.掛載

[root@centos6 ~]#mkdir /data/raid5

[root@centos6 ~]#vim /etc/fstab

[root@centos6 ~]#mount -a

6.生成配置文件

[root@centos6 ~]#mdadm -Ds /dev/md5 >/etc/mdadm.conf

[root@centos6 ~]#cat /etc/mdadm.conf

ARRAY /dev/md5 metadata=1.2 spares=1 name=centos6.9:5 UUID=e7cc89fe:0c6ebcf8:5f2d1869:da58575f

 

注:如果磁盤損壞,需要更換新磁盤,先把磁盤假如raid,然后再統一指定同一文件系統

mdadm–G /dev/md0 –n4 -a /dev/sdf1

resize2fs /dev/md5?? 此命令只適合ext系列文件系統,不適合xfs系列

xfs 系列則使用xfs_growfs /data/raid5?? /data/raid5是掛載點

 

 

 

 

 

 

創建raid10

準備4個硬盤,sdc,sdd,sde,sdf。

1.先創建raid0

[root@centos6 ~]#mdadm -C /dev/md0 -a yes -l0 -c 32 -n 2 /dev/sd{c,d}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

[root@centos6 ~]#mdadm -C /dev/md1 -a yes -l0 -c 32 -n 2 /dev/sd{e,f}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md1 started.

2.再用兩個raid0創建raid1

[root@centos6 ~]#mdadm -C /dev/md10 -a yes -l1 -c 32 -n 2 /dev/{md0,md1}

3.格式化

[root@centos6 ~]#mkfs.ext4 /dev/md10

4.自動掛載

[root@centos6 ~]#mkdir /data/md10

[root@centos6 ~]#vim /etc/fstab

[root@centos6 ~]#mount -a

5.生成配置文件

[root@centos6 ~]#mdadm -Ds /dev/md1 >/etc/mdadm.conf

[root@centos6 ~]#mdadm -Ds /dev/md0 >>/etc/mdadm.conf

 

[root@centos6 ~]#mdadm -Ds /dev/md10 >>/etc/mdadm.conf

 

 

 

卸載raid10

1.卸載掛載

[root@centos6 ~]#umount /dev/md10

2.停止md10設備

[root@centos6 ~]#mdadm -S /dev/md10

mdadm: stopped /dev/md10

[root@centos6 ~]#mdadm -S /dev/md0

mdadm: stopped /dev/md0

[root@centos6 ~]#mdadm -S /dev/md1

mdadm: stopped /dev/md1

Number?? Major?? Minor?? RaidDevice

3.刪除配置文件,修改/etc/fstab

[root@centos6 ~]#\rm -rf /etc/mdadm.conf

[root@centos6 ~]#vim /etc/fstab

4.刪除raid信息

刪除raid信息:mdadm –zero-superblock /dev/sdb1

[root@centos6 ~]#mdadm –zero-superblock /dev/sdc

[root@centos6 ~]#mdadm –zero-superblock /dev/sdd

[root@centos6 ~]#mdadm –zero-superblock /dev/sde

[root@centos6 ~]#mdadm –zero-superblock /dev/sdf

 

 

 

 

邏輯卷管理

pv管理工具

顯示pv信息

pvs:簡要pv信息顯示

pvdisplay

創建pv

pvcreate /dev/DEVICE

 

vg管理工具

顯示卷組

vgs

vgdisplay

創建卷組

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

管理卷組

vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

刪除卷組

先做pvmove,再做vgremove

 

lv管理工具

顯示邏輯卷

lvs

Lvdisplay

創建邏輯卷

lvcreate-L #[mMgGtT] -n NAME VolumeGroup

lvcreate-l 60%VG -n mylvtestvg

lvcreate-l 100%FREE -n yourlvtestvg

刪除邏輯卷

lvremove/dev/VG_NAME/LV_NAME

重設文件系統大小

fsadm[options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

 

擴展和縮減邏輯卷

擴展邏輯卷:

lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME

lvresize-r -l +100%FREE /dev/VG_NAME/LV_NAME

縮減邏輯卷:

umount/dev/VG_NAME/LV_NAME

e2fsck -f /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

mount

 

跨主機遷移卷組

源計算機上

1 在舊系統中,umount所有卷組上的邏輯卷

vgrename vg0 centos6vg0

lvrename vg0 centos6lv0

2 vgchange–a n vg0

lvdisplay

3 vgexportvg0

pvscan

vgdisplay

拆下舊硬盤

在目標計算機上

4 在新系統中安裝舊硬盤,并vgimportvg0.

5 vgchange–ay vg0

?6 mount所有卷組上的邏輯卷

 

刪除所有邏輯卷

1.取消所有掛載,包括配置文件里的設置

2.刪除邏輯卷

lvremove /dev/vg1/lv1

3.刪除vg卷組

vgremove vg1

4.將pv物理設備刪除

pvremov /dev/sdx

 

實驗一、創建邏輯卷

準備2個磁盤sdc,sdd,大小20G

1.創建物理卷

[root@centos6 ~]#pvcreate /dev/sd{c,d}

Physical volume “/dev/sdc” successfully created

Physical volume “/dev/sdd” successfully created

2.創建vg卷組

[root@centos6 ~]#vgcreate -s 8M vg1 /dev/sd{c,d}

Volume group “vg1” successfully created

3.創建lv1和lv2

[root@centos6 ~]#lvcreate -n lv1 -L 10G vg1

Logical volume “lv1” created.

[root@centos6 ~]#lvcreate -n lv2 -l 100%FREE vg1

Logical volume “lv2” created.

[root@centos6 ~]#lvs

LV?? VG?? Attr?????? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert

lv1? vg1? -wi-a—– 10.00g

lv2? vg1? -wi-a—– 29.98g

4.創建文件系統

[root@centos6 ~]#mkfs.ext4 /dev/vg1/lv1

[root@centos6 ~]#mkfs.ext4 /dev/vg1/lv2

5.自動掛載

[root@centos6 ~]#mkdir /data/lv1

[root@centos6 ~]#vim /etc/fstab

[root@centos6 ~]#mount -a

 

 

在試驗一基礎上擴容,增加一塊新硬盤sde

  1. [root@centos6 ~]#pvcreate /dev/sde

Physical volume “/dev/sde” successfully created

2.擴展vg卷組

[root@centos6 ~]#vgextend vg1 /dev/sde

Volume group “vg1” successfully extended

[root@centos6 ~]#vgs

VG ??#PV #LV #SN Attr?? VSize? VFree

vg1??? 3?? 2?? 0 wz–n- 59.98g 19.99g

3.擴展lv1

[root@centos6 ~]#lvextend -l +100%FREE? /dev/vg1/lv1

Size of logical volume vg1/lv1 changed from 10.00 GiB (1280 extents) to 19.99 GiB (2559 extents).

Logical volume lv1 successfully resized.

4.新假如vg,重新指定文件系統

resize2fs /dev/vg1/lv1

也可以在步驟3時指定,加上-r選項,即:

lvextend -r -l +100%FREE? /dev/vg1/lv1

 

 

 

縮減邏輯卷,在xfs文件系統中不支持縮減功能

1.將邏輯卷里面的數據備份

用tar 或者cp

2.卸載掛載

umount MOUNTPOINT

3.檢查文件系統

fsck -f /dev/vg1/lv1

4.縮減文件系統

resize2fs /dev/vg1/lv1 20G

5.縮減lv大小

lvreduce -L 20G /dev/vg1/lv1

6.縮減完成后重新掛載

mount -a

 

刪除vg中pv,刪減其中一塊硬盤,但是硬盤中還有數據

1.pvdisplay 查看pv情況

2.把需要移除的硬盤里的數據轉移到別的硬盤

pvmove /dev/sde

3.把pv從vg卷組刪除

vgreduce vg1 /dev/sde

4.把pv變成普通硬盤

pvremove /dev/sde

 

 

邏輯卷跨主機遷移

1.把能空出來的硬盤都清理出來,

pvdisplay

pvmove

vgreduce vg0 /dev/sdx

pvremove /dev/sdx

2.把卷組都改名,以防和新設備邏輯卷名產生沖突

vgrename vg0 centos6vg0

lvrename /dev/centos6vg0/lv0 /dev/centos6vg0/centoslv0

3.取消掛載,然后禁用

[root@centos6 ~]#umount /data/lv0

[root@centos6 ~]#vgchange -an centos6vg0

0 logical volume(s) in volume group “centos6vg0” now active

lvdisplay查看此時狀態,顯示LV Status????????????? NOT available

4.讓vg卷組處于導出狀態,

[root@centos6 ~]#vgexport centos6vg0

Volume group “centos6vg0” successfully exported

5.然后把帶有數據的邏輯卷硬盤拆出,添加到新主機

6.在新主機上,把vg卷從導出狀態變成導入狀態

vgimport centos6vg0

7.啟用vg卷

vgchange -ay centos6vg0

 

 

 

 

邏輯卷管理器快照

快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝

對于需要備份或者復制的現有數據臨時拷貝以及其它操作來說,快照是最合適的選擇

快照只有在它們和原來的邏輯卷不同時才會消耗空間

在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間

當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。

快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據

建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了,也可以使用lvextend放大快照

 

使用LVM快照

為現有邏輯卷創建快照

lvcreate-l 64 -s -n data-snapshot -p r /dev/vg0/data

掛載快照

mkdir-p /mnt/snap

mount -o ro/dev/vg0/data-snapshot /mnt/snap

恢復快照

umount/dev/vg0/data-snapshot

umount/dev/vg0/data

lvconvert–merge /dev/vg0/data-snapshot

刪除快照

umount/mnt/databackup

lvremove/dev/vg0/databackup

 

 

創建快照

1.復制3個文件到邏輯卷掛載的目錄下

[root@centos7 ~]#cp /etc/passwd /data/centos6lv0/f1

[root@centos7 ~]#cp /etc/passwd /data/centos6lv0/f2

[root@centos7 ~]#cp /etc/passwd /data/centos6lv0/f3

2.創建快照

[root@centos7 ~]#lvcreate -n centos6lv0-snapshot -s -L 2G -p r /dev/centos6vg0/centoslv0

Using default stripesize 64.00 KiB.

Logical volume “centos6lv0-snapshot” created.

-p r 只讀屬性,防止誤刪除快照中的內容

-n 名字

 

在/dev/centos6vg0/centoslv0這個邏輯卷下創建一個centos6lv0-snapshot的快照

3.掛載創建的快照邏輯卷

[root@centos7 ~]#mkdir /data/snapshot

[root@centos7 ~]#mount? /dev/centos6vg0/centos6lv0-snapshot /data/snapshot

[root@centos7 ~]#cd /data/snapshot

[root@centos7 snapshot]#ll

total 28

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f1

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f2

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f3

drwx—— 2 root root 16384 Apr 26 14:47 lost+found

 

此時看到的數據并不是真實的數據,真實的數據不在這,還在邏輯卷

4.修改邏輯卷文件中的內容,然后對比

 

[root@centos7 snapshot]#ll /data/centos6lv0/ /data/snapshot/

/data/centos6lv0/:

total 28

-rw-r–r– 1 root root?? 176 Apr 27 04:34 f1

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f2

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f3

drwx—— 2 root root 16384 Apr 26 14:47 lost+found

 

/data/snapshot/:

total 28

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f1

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f2

-rw-r–r– 1 root root? 2901 Apr 27 04:17 f3

drwx—— 2 root root 16384 Apr 26 14:47 lost+found

 

這時體現除快照的備份效果

 

 

 

 

 

在xfs文件系統上創建快照

已經創建了一個邏輯卷lv0大小為20G并且剩余20Gvg卷組

1.在剩余的vg卷組創建快照

[root@centos7 ~]#lvcreate -n lv0-snapshot -L 5G -p r -s /dev/vg0/lv0

-s 表示這不是一般邏輯卷,是快照邏輯卷

-p r 指定只讀屬性

2.查看他們的uuid,結果相同,在xfs文件系統中,相同uuid不能掛載不同目錄

[root@centos7 ~]#blkid

/dev/mapper/vg0-lv0: UUID=”663f8ea0-fbb1-470e-9d0f-878510ff30a9″ TYPE=”xfs”

/dev/sdc1: UUID=”nvuDcD-TEAe-xbGQ-az3V-emG0-aasY-bCImkO” TYPE=”LVM2_member”

/dev/mapper/vg0-lv0–snapshot: UUID=”663f8ea0-fbb1-470e-9d0f-878510ff30a9″ TYPE=”xfs”

3.創建目錄給快照邏輯卷掛載,掛載時指定nouuid

[root@centos7 ~]#mkdir /data/snap

[root@centos7 ~]#mount -o nouuid /dev/vg0/lv0-snapshot /data/snap

mount: /dev/mapper/vg0-lv0–snapshot is write-protected, mounting read-only

mount: cannot mount /dev/mapper/vg0-lv0–snapshot read-only

4.在目錄中修改文件,或者刪除文件,然后恢復快照

[root@centos7 ~]#umount /data/lv0/

[root@centos7 ~]#umount /data/snap

umount: /data/snap: not mounted

[root@centos7 ~]#lvconvert –merge /dev/vg0/lv0-snapshot

Merging of volume vg0/lv0-snapshot started.

lv0: Merged: 100.00%

5.重新掛載邏輯卷,看有沒有恢復到原來狀態

mount /dev/vg0/lv0 /data/lv0

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97259

(0)
王琪鋒王琪鋒
上一篇 2018-04-29
下一篇 2018-04-30

相關推薦

欧美性久久久久