RAID 及 LVM

本節主要介紹軟RAID的實現和LVM的創建等等

RAID:多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供

提高IO能力 :???? 磁盤并行讀寫

提高耐用性:???? ?磁盤冗余來實現

級別:??? 多塊磁盤組織在一起的工作方式有所不同

RAID實現的方式:

外接式磁盤陣列:通過擴展卡提供適配能力

內接式RAID:主板集成RAID控制器

安裝OS前在BIOS里配置

軟件RAID:通過OS實現

RAID級別:

RAID-0: (條帶集)

讀、寫性能提升;

可用空間:N*min(S1,S2,…)

無容錯能力

最少磁盤數:2, 2+

RAID-1: (兩兩互為鏡像)

讀性能提升、寫性能略有下降;

可用空間:1*min(S1,S2,…)

有冗余能力

最少磁盤數:2, 2N

RAID-4:(最少3塊硬盤)(由于校驗位專用盤使用頻繁易壞,淘汰)

多塊數據盤異或運算值存于專用校驗盤

RAID-5:(校驗位均勻寫在每塊磁盤)(犧牲磁盤空間換取容錯性)

讀、寫性能提升 ,如若損壞一塊硬盤,性能急劇下降

可用空間:(N-1)*min(S1,S2,…)

有容錯能力:允許最多1塊磁盤損壞(有一塊備用盤)

最少磁盤數:3, 3+

RAID-6:

讀、寫性能提升

可用空間:(N-2)*min(S1,S2,…)

有容錯能力:允許最多2塊磁盤損壞

最少磁盤數:4, 4+

RAID-10: (比01更好)

讀、寫性能提升

可用空間:N*min(S1,S2,…)/2

有容錯能力:每組鏡像最多只能壞一塊

最少磁盤數:4, 4+

RAID-01 ????????????多塊磁盤先實現RAID0,再組合成RAID1

RAID-50 ????????????多塊磁盤先實現RAID5,再組合成RAID0

JBOD:Just a Bunch Of Disks

功能:將多塊磁盤的空間合并一個大的連續空間使用

可用空間:sum(S1,S2,…)

RAID7 ???????可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立 運行,理論上性能最高的RAID模式

軟RAID

mdadm:為軟RAID提供管理界面

為空余磁盤添加冗余

結合內核中的md(multi devices)

RAID設備可命名為/dev/md0、/dev/md1、/dev/md2、/dev/md3等

mdadm:模式化的工具

命令的語法格式:mdadm [mode] [options]

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

模式: 創建:-C 裝配: -A 監控: -F 管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-device>: 任意塊設備

-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的實現實驗:

  1. 劃分分區:fdisk /dev/sdb?? (n?? p?? 1?? 1?? +2G? t?? fd)[有四塊磁盤,劃分2G分區,一塊備用磁盤]

dd?? if=/dev/zero?? of=/dev/sdb1? //清空sdb1分區(之前劃分過分區,非必須)

  1. 使用mdadm創建并定義RAID設備

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 ?-c?? 32? /dev/sd{b1 ,c1,d1,e1}

  1. 查看RAID信息

mdadm?? -D? /dev/md0???? //查看RAID信息

  1. 用文件系統對每個RAID設備進行格式化 ?ext4??? /dev/md0

mke2fs -j /dev/md0

  1. 寫入配置文件: UUID=xxx ?/mnt/raid?? ext4??? defaults? 0 0
  2. 生成配置文件: mdadm –D –s ??RAID設備? >> /etc/mdadm.conf
  3. 取消掛載: umount??? /mnt/raid
  4. 停止設備: mdadm –S /dev/md0
  5. 激活設備: mdadm –A –s /dev/md0

測試RAID設備

使用mdadm檢查RAID設備的狀況 ???????mdadm –detail|D /dev/md0

增加新的成員 ?????????????mdadm ?–G ?/dev/md0 ?–n4 ?–a ?/dev/sdf1??? //實現擴展

resize2fs?? /dev/md0????? //實現同步文件系統(試用ext系列) //實現新加成員格式化

xfs_growfs??? /mnt/raid(掛載點) //實現同步文件系統 (試用xfs系列)? //實現新加成員格式化

模擬磁盤故障???? ?mdadm ?/dev/md0 ?-f ?/dev/sda1

移除磁盤 ???mdadm ?/dev/md0 ?–r ?/dev/sda1

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

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

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

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

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

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

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

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

刪除RAID

  1. 取消掛載: umount???? /mnt/md0
  2. 刪除配置文件:UUID=xxx /mnt/raid?? ext4??? defaults? 0 0
  3. 查看RAID信息? ? ?mdadm?? -D? /dev/md0???? //查看RAID信息
  1. 刪除配置文件: rm?? –f?? /etc/mdadm.conf
  2. 停止設備: mdadm –S /dev/md0
  3. 刪除raid信息: mdadm –zero-superblock /dev/sdb1
  4. 刪除磁盤分區(RAID信息有殘留)
  5. dd if=/dev/zero?? of=/dev/sdb?? (如若先刪除的分區,沒有刪除RAID信息,即可用dd命令實現刪除RAID信息)

作業:實現RAID10

madam?? -C?? /dev/md0?? -a yes? -l 10? -n4?? /dev/sd{b.c.d.e}

或者:madam?? -C?? /dev/md0?? -a yes? -l 1 –n2? /dev/sd {b,c}

madam?? -C?? /dev/md1? -a yes? -l 1? -n2? /dev/sd{d,e}

madam?? -C?? /dev/md2?? -a yes? -l 0?? -n2 /dev/md{0,1}

邏輯卷管理器(LVM

允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小

允許在多個物理設備間重新組織文件系統

  • 將設備指定為物理卷
  • 用一個或者多個物理卷來創建一個卷組
  • 物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的
  • 在物理卷上創建的邏輯卷 是由物理區域(PE)組成
  • 可以在邏輯卷上創建文件系統

pv管理工具

顯示pv信息: ??????pvs:簡要pv信息顯示???????????? ?pvdisplay

創建pv :??????? pvcreate???? ?/dev/DEVICE

vg管理工具:

顯示卷組:? ?vgs ?????????vgdisplay

創建卷組 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

-s??? //指定pe的大小

管理卷組 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

刪除卷組 :????? 先做pvmove,再做vgremove

lv管理工具

顯示邏輯卷:? ?lvs??? ?Lvdisplay

創建邏輯卷lvcreate ?-L ?#[mMgGtT] ?-n ?NAME VolumeGroup(-L 指定大小? )

lvcreate ?-l ?60%VG ?-n ?mylv testvg? (-l?? 以pe個數為單位)

lvcreate -l 100%FREE -n ?yourlv ?testvg ??//將剩余空間全部使用

刪除邏輯卷???? ?lvremove ?/dev/VG_NAME/LV_NAME

重設文件系統大小

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

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

邏輯卷的實際名稱:? /dm-數字

擴展和縮減邏輯卷

擴展邏輯卷: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME? (可在線擴展)

resize2fs ?/dev/VG_NAME/LV_NAME???? //同步邏輯卷

lvectend ?-r ?-l ?+100%FREE ??/dev/VG_NAME/LV_NAME?? //擴展同時格式化

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

縮減邏輯卷: umount ?/dev/VG_NAME/LV_NAME ?(離線縮減,只適用于ext系列)

e2fsck ?-f ?/dev/VG_NAME/LV_NAME??? //

resize2fs ?/dev/VG_NAME/LV_NAME #[mMgGtT]

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

跨主機遷移卷組示例

原計算機:? vgrename?? vg0?? centos6vg0

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

1 在舊系統中,umount所有卷組上的邏輯卷 ?: umount?? /mnt/lv0

2 vgchange –a n centos6vg0? //禁用巻組???????????????????? ?lvdisplay??? 查看

3 vgexport ?cebtos6vg0 ??導出邏輯卷?????? ?pvscan?? 查看?? ?vgdisplay?? 查看

4 ?拆下舊硬盤

在目標計算機上

5 在新系統中安裝舊硬盤,并 導入vgimport? centos6vg0.

6 vgchange? -ay? centos6vg0???? //激活巻組

7? mount 所有巻組上的邏輯卷

使用分區創建邏輯卷示例

  1. 創建分區fdisk /dev/sdc??? ( n? p 1 1? +2G?? t?? 1?? 8e )
  2. 創建物理卷 :?? pvcreate????? /dev/sd{b1,c1}
  3. 顯示pv信息: pvs:簡要pv信息顯示???????????? ?pvdisplay
  4. 為卷組分配物理卷: vgcreate? -s?? 16M? ?vg0?? /dev/sd{b1,c1}
  5. 顯示卷組: ?vgs ??或?????? vgdisplay
  6. 從卷組創建邏輯卷: lvcreate ?-L ?256M? –n ?lv0 ?vg0
  7. 顯示邏輯卷: ?lvs?? 或? ?Lvdisplay
  8. 創建文件系統:ext4 /dev/vg0/lv0

make2fs?? -j?? /dev/vg0/data

  1. 掛載:寫入文件:UUID=xxx /mnt/lv0?? ext4? defaults?? 0? 0

mount ??/dev/vg0/data ??/mnt/data?? (臨時有效)

擴展邏輯卷示例

  1. 新加硬盤, echo ‘ – – – ‘ > /sys/class/scsi_host/host2/scan?? ?//使硬盤識別
  2. pvcreate /dev/sdd
  3. vgextend vg0? /dev/sdd
  4. lvextend -L? +5G? /dev/vg0/lv0?? //新增加5G
  5. resize2fs /dev/vg0/lv0??? //同步邏輯卷(ext系列)

縮減邏輯卷示例

  1. 先備份
  2. umount /mnt/lv0????? 先取消掛載
  3. 檢查文件系統完整性 fsck?? -f?? /dev/vg0/lv0
  4. resize2fs /dev/vg0/lv0?? 10G??? ?//
  5. lvreduce -L? 10G?? /dev/vg0/lv0?? //縮減邏輯卷
  6. mount -a? //自動掛載

刪除vg中的pv示例

1.pvmove? /dev/sdd???? //將sdd上的空間遷移到同巻組的其他設備中

2.vgreduce vg0? /dev/sdd??? //在巻組vg0移除/dev/sdd

3.pvremove /dev/sdd???? //移除物理卷

使用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

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

(0)
qljqlj
上一篇 2018-04-25
下一篇 2018-04-25

相關推薦

  • 進程管理 計劃任務管理

    進程管理 計劃任務管理

    2018-05-03
  • Docker容器三

    Docker file鏡像的制作的各種指令 ;dockerData Volume存儲卷

    2018-08-03
  • Linux系統中RAID及LVM管理

    Linux系統中如何提高磁盤的讀寫性能,如何實現磁盤冗余,當磁盤快被占滿時,又如何彈性拓展磁盤容量,RAID及LVM技術可以幫你輕松解決。

    2018-04-26
  • 第三周作業

    1 列出當前系統上所有已經登陸的用戶的用戶名,注意:同一個用戶名登陸多次,則只顯示一次。
    2 取出最后登陸到當前系統的用戶的相關信息。
    3 取出當前系統上被用戶當作其默認shell的最多的那個shell.
    4 將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
    5 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6 列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字裝換為大寫后保存至/tmp/etc.conf文件中。
    7 顯示/var目錄下一級子目錄或文件的總個數。
    8 取出/etc/group文件中第三個字符段數值最小的10個組的名字。
    9 將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法并完成以下練習:
    (1)創建組distro, 其GID為2016
    (2)創建用戶mandriva, 其ID號為1005,基本組為distro
    (3)創建用戶mageia, 其ID號為1100,家目錄為/home/linux
    (4)給用戶mageia添加密碼,密碼為mageedu
    (5)刪除mandriva, 但保留其家目錄
    (6)創建用戶slackware, 其ID號為2002, 基本組為distro, 附加組為peguin
    (7)修改slackware的默認shell為/bin/tcsh
    (8)為用戶slackware的新增附加組admins

    2018-06-05
  • 第四周作業

    1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 [root@localhost ~]# chmod go= /home/tuser1/ -R [root@localhost …

    Linux筆記 2018-06-03
  • Linux菜鳥,放棄了曾經的那份“雞肋”?。?!

    有志者、事竟成,破釜沉舟,百二秦關終屬楚;
    苦心人、天不負,臥薪嘗膽,三千越甲可吞吳。

    2018-07-19
欧美性久久久久