RAID和邏輯卷

1、RAID技術
2、RAID實驗
3、邏輯卷管理
4、邏輯卷快照

RAID技術

 

RAID

名稱

讀寫性能

容錯/校驗位

磁盤利用率

最小磁盤數

raid0

讀寫性能提升

100%

1

raid1

讀提升,寫下降

有冗余 1

1/2

2

raid5

讀寫性能提升

容錯1 校驗1

n-1/n

3

raid6

讀寫性能提升

容錯2 校驗2

n-2/n

4

raid10

讀寫性能提升

每組鏡像1

1/2

4

raid01

讀寫性能提升

比不上raid10

1/2

4

raid50

讀寫性能提升

非常高

1/3

9

spare disk 備用盤

 

RAID

mdadm:為軟RAID提供管理界面

生成的設備為:/dev/md0、/dev/md1、/dev/md2

mdmulti devices

 

軟件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

 

 

軟RAID實驗

軟件實現RAID5

實驗環境Centos6

1、分區(fd),磁盤大小一致

fdisk? /dev/sdb

t fd

后面的分區可以直接復制分區表實現:

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

partx -a /dev/sdc

最少4塊磁盤

2、mdadm -C /dev/md0 -a yes -l 5 -c 32 -n 3 -x 1 /dev/sd{b,c,d,e}1

mdadm -D /dev/md0

3、mkfs.ext4 /dev/md0 -L raid5

4、vim /etc/fstab

UUID=….???? /mnt/raid?? ext4??? defaults????? 0???? 0

mkdir /mnt/raid

mount -a

5、創建配置文件,如果無,禁用再啟用后會提示無法找到配置文件

mdadm -Ds /dev/md0 > /etc/mdadm.conf

6、mdadm -S /dev/md0 停止(umount)

7、mdadm -A /dev/md0 激活

8、mdadm /dev/md0 -f /dev/sde1?? 損壞

9、mdadm /dev/md0 -r /dev/sde1?? 刪除

10、mdadm /dev/md0 -a /dev/sde1 加

 

作業:實現raid10

方法一:

mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{b,c}

mdadm -C /dev/md1 -a yes -l1 -n2 /dev/sd{d,e}

mdadm -C /dev/md2 -a yes -l1 -n2 /dev/md{0,1}

 

方法二:

mdadm -C /dev/md0 -a yes -110 -n4 /dev/sd{b,c,d,e}

 

同步raid分區所有的文件系統,只適合ext文件系統

resize2fs /dev/md0

 

xfs文件系統用以下命令:

xfa_growfs /mnt/raid

 

RAID擴展增加新成員

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

resize2fs /dev/md0??????? 同步文件系統ext文件系統版

xfs_growfs /mnt/raid???? 同步xfs文件系統(后面跟的是掛載點)

 

查看RAID信息? ? ? cat /proc/mdstat

 

刪除RAID

1、umount? /mnt/raid/

2、如果有人在用先? ? fuser -km /mnt/raid/

3、修改/etc/fstab

4、確定成員數mdadm -D /dev/md0

5、rm -f /etc/mdadm.conf

6、mdadm -S /dev/md0

7、徹底清除RAID信息? ? mdadm –zero-superblock /dev/sdb1? 或者? ?dd if=/dev/zero of=/dev/sdb1

8、刪除成員分區

 

邏輯卷管理

LVM

允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小,允許在多個物理設備間重新組織文件系

統將設備指定為物理卷用一個或者多個物理卷來創建一個卷組,物理卷是用固定大小的物理區域(Physical

Extent,PE)來定義的,在物理卷上創建的邏輯卷是由物理區域(PE)組成可以在邏輯卷上創建文件系

統。

LVM: Logical Volume Manager,Version: 2

dm: device mapper:將一個或多個底層塊設備組織成一個邏輯設備的模塊

設備名:/dev/dm-#

 

創建邏輯卷

1、創建物理卷

pvcreate /dev/sd{b,c}1

pvs

pvdisplay

2、創建卷組

vgs

vgdisplay

vgcreate? -s 16M vg0 /dev/sd{b,c}1

3、創建邏輯卷(-L 容量為單位 -l PE個數為單位)

lvcreate -n lv0 -l 100 vg0???? (lv0為設定邏輯卷名,為軟鏈接,真名為dm-0)

lvs

lvdisplay

創建lv1,并用光所有空間

lvcreate -n lv1 -l 100%FREE vg0

ll /dev/mapper/vg0-lv0

ll /dev/mapper/vg0-lv1

或者

ll /dev/vg0/lv0

ll /dev/vg0/lv0

4、創建文件系統

mkfs.ext4 /dev/vg0/lv0

mkfs.ext4 /dev/vg0/lv0

5、掛載

mkdir /mnt/lv0

mkdir /mnt/lv1

vim /etc/fstab

UUID=….????????? /mnt/lv0? ext4?? defaults?? 0?? 0

UUID=….????????? /mnt/lv1? ext4?? defaults?? 0?? 0

mount -a

 

邏輯卷空間擴展

這種擴展屬于在線擴展,不會影響現有用戶的使用。

1、增加空間(加分區或者增加物理硬盤)

插上硬盤

echo ‘- – -‘ > /sys/class/scsi_host/host2/scan

直接增加硬盤不用分區

2、創建物理卷

pvcreate /dev/sdd

pvs

3、加入卷組

vgextend vg0? /dev/sdd

注意:

最好在增加容量的同時,同步文件系統(-r)

lvextend -r -l +100%FREE /dev/vg0/lv0

4、擴展邏輯卷空間(-l +200??? -L +5G這里為增加,-l 200 -L 5G這里表示增加到,增加全部剩余空間 -l

+100%FREE)

lvextend -L +5G? /dev/vg0/lv0

5、同步文件系統(xfs文件系統:xfs_growfs)

resize2fs /dev/vg0/lv0

 

調整邏輯卷大?。s減邏輯卷空間)

確?,F有數據能放得下的情況縮,在縮減之前先備份(tar)

ext文件系統可以縮減,xfs文件系統不能縮減(除非格式化)

1、取消掛載(只能在無用戶在線下縮減,fuser -km)

umount /mnt/lv0

2、縮減文件系統

fsck -f /dev/vg0/lv0

resize2fs /dev/vg0/lv0 10G????? (縮到10G)

3、縮減邏輯卷

lvreduce -L 10G /dev/vg0/lv0

4、掛載分區

mount -a

 

硬盤老化報警,需要更換硬盤,邏輯卷如何處理?

pvdisplay

Allocated PE 540

1、首先要找到能代替的空間(新加硬盤或者分區)

fdisk /dev/sdc

2、創建物理卷

pvcreate /dev/sdc2

3、加入卷組

vgextend vg0 /dev/sdc2

4、移動數據

pvmove /dev/sdd

5、移除卷組

vgreduce vg0 /dev/sdd

pvdisplay

pvremove /dev/sdd

 

遷移邏輯卷到新的機器

1、先把已使用的邏輯卷空間集中在某一物理硬盤

pvdisplay

pvmove /dev/sda7

2、減少對應的卷組

vgreduce /dev/sda7

3、如果新機器上有同名的邏輯卷那怎么辦?

先改名

卷組:

vgrename vg0 centos6vg0

邏輯卷:

lvrename? /dev/centos6vg0/lv0? /dev/centos6vg0/centos6lv0

lvrename? /dev/centos6vg0/lv0 /dev/centos6vg1/centos6lv1

4、取消掛載

umount /mnt/lv0

5、禁用卷組

vgchange -an centos6vg0

6、導出卷組

vgexport centos6vg0

確認導出狀態

vgdisplay

pvdisplay

7、拆除并移動磁盤

8、識別磁盤

echo ‘- – -‘ > /sys/clsss/scsi_host/host2/scan

9、導入硬盤

vgimport centos6vg0

10、啟用卷組

vgchange -ay centos6vg0

11、掛載

mkdir /mnt/centos6lv0

mount /dev/centos6vg0/centos6lv0 /mnt/centos6lv0

 

邏輯卷快照

不能完全代替備份,例如同一硬盤上的快照,創建快照就立即在卷組中分配一塊空間,邏輯卷快照和原邏

輯卷在同一卷組中,快照大小可以和原邏輯卷相同也可以不同。當原邏輯卷數據發生修改時,才會把舊數

據寫入快照(修改,刪除都會,而且不管修改多少次,永遠保留最舊的那個)如果原邏輯卷數據沒發生改

動,沒有改動的區域則由快照區和文件系統共享,快照中只含有原來的邏輯卷中更改的數據或者自生成快

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

大快照。

例如如果mysql數據庫要進行備份,大小100G,在cp期間很可能數據發生變化,那就可以利用快照,這樣

備份時,就不怕數據被改變。

實驗:邏輯卷的快照

1、檢查空間是否足夠? ? ?vgdisplay

2、創建快照

lvcreate -n centos6lv0-snapshot -s -L 1G

/dev/centos6vg0/centos6lv0

lvdisplay

3、掛載并查看快照內容

mkdir /mnt/snap

mount /dev/centos6vg0/centos6lv0-snapshot /mnt/snap

4、由于掛載快照有可能會誤刪快照文件,導致備份失效,所以建議在建立快照時加入-p r 選項

lvcreate -n centos6lv0-snapshot -s -L 1G -p r /dev/centos6vg0/centos6lv0

5、掛載

mount /dev/centos6vg0/centos6lv0-snapshot? /mnt/snap

如果創建時未加-p r,也可以在掛載時修改成只讀屬性

mount -o ro /dev/centos6vg0/centos6lv0-snapshot /mnt/snap

注意:

ext4必須要加-p r 選項

xfs不能加-p r選項

否則恢復合并會不成功!

5、利用快照恢復

umount /mnt/snap/

umount /mnt/centos6lv0/

lvconvert –merge /dev/centos6vg0/centos6lv0

(如果在快照創建時沒有加-p r選項會導致不能合并!這時只能用復制)

 

在Centos7上建立快照

lvcreate -n lv0-snapshot -L 1G -s /dev/vg0/lv0

xfs文件系統不允許相同UUID的設備同時掛載,所以無法掛載快照,所以想掛載必須:

mount -o nouuid /dev/vg0/lv0-snapshot /mnt/lv0-snap

快照恢復數據:

unmount /mnt/lv0

lvconvert –merge /dev/vg0/lv0-snapshot

mount /dev/vg0/lv0 /mnt/lv0

注意: 一旦還原數據,快照自動刪除

 

刪除帶有快照邏輯卷:

umount /mnt/centos6lv0

lvremove /dev/centos6vg0/centos6lv0

會提示是否先刪除快照,直接選y即可

 

只刪除快照,不刪除邏輯卷:

一樣操作,先取消掛載,然后刪除

umount /mnt/lv0-snap

lvremove /dev/vg0/lv0-snapshot

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

(0)
MaxMax
上一篇 2018-06-10
下一篇 2018-06-10

相關推薦

  • 手把手系列(三)教你自制簡單Linux系統

    CentOS啟動相關最重要的幾個文件有:內核vmlinuz文件、虛擬文件系統initramfs文件、grub文件以

    及init啟動程序,圍繞這幾個文件,我們來制作一個能夠簡單啟動的自制Linux系統

    2018-05-14
  • Linux系統上命令的使用格式

    命令的語法通用格式: ~]# COMMAND OPTIONS ARGUMENTS ifconfig命令格式 ifconfig [interface] [options] | address   Echo命令格式 echo [options] …[string]… tty命令格式 tty [options] startx命令格…

    Linux筆記 2018-05-13
  • 數組、字符串處理及變量

    拍照是被動學習,記筆記才是主動學習!

    2018-05-11
  • 作業管理(任務計劃)

    任務計劃就好比我們的鬧鐘一樣,到了指定的時間就該去做對應的事情。 任務計劃分為兩類: 一次性的任務計劃:只執行一次就結束 周期性的任務計劃:每隔一定的周期去做相同的事情 at命令就是專門用來處理一次性的計劃任務 batch也是處理一次性的計劃任務但是它是由系統自行選擇空閑時間去執行此處指定的任務(不常用) crontab可以根據定義的周期信息,循環的去做一些…

    Linux筆記 2018-05-05
  • 一次完整的http請求處理過程+MPM工作模式

    ? 1、建立連接:接收或拒絕連接請求? 2、接收請求:接收客戶端請求報文中對某資源的一次請求的過程? Web訪問響應模型(Web I/O)單進程I/O模型:啟動一個進程處理用戶請求,而且一次只處理一個,多個請求被串行響應多進程I/O模型:并行啟動多個進程,每個進程響應一個連接請求復用I/O結構:啟動一個進程,同時響應N個連接請求實現方法:多線程模型和事件驅動…

    2018-06-24
  • SSH端口轉發及相關實驗

    在上一節我們知道,SSH會自動加密和解密所有SSH客戶端和服務器之間的網絡數據。但是,SSH還同時提供了一個非常有用的功能,這就是端口轉發。

    2018-05-22
欧美性久久久久