Linux磁盤管理進階

Linux磁盤管理進階


  • dd命令

  • SWAP與移動介質

  • 磁盤配額

  • RAID


dd命令

dd - convert and copy a file
Copy a file, converting and formatting according to the operands.

dd命令基本用法:

ddif=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 複製單元大小count=#:複製多少個bs
skip=blocks從開頭忽略blocks個ibs大小的塊
seek=blocks從開頭忽略blocks個obs大小的塊

常用選項:

conv=conversion[,conversion...] 用指定的參數轉換文件。    
    lcase 把大寫字符轉換爲小寫字符    
    ucase 把小寫字符轉換爲大寫字符
    swab 交換輸入的每對字節
    noerror 出錯時不停止
    notrunc 不截短輸出文件
    sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊

使用dd命令對磁盤進行操作進,最好使用塊設備文件;

使用示例:

創建兩個文件:

[root@centos7 ~]#echo {1..9} |tr -d [:space:] > f1
[root@centos7 ~]#echo {a..z} |tr -d [:space:] > f2
[root@centos7 ~]#cat f1
123456789[root@centos7 ~]#
[root@centos7 ~]#cat f2
abcdefghijklmnopqrstuvwxyz[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 
3+0 records in
3+0 records out
3 bytes (3 B) copied, 0.00136469 s, 2.2 kB/s
[root@centos7 ~]#cat f2
123[root@centos7 ~]#     # 從f1中複製了3字節的內容覆蓋了f2
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 skip=3 seek=3
3+0 records in
3+0 records out
3 bytes (3 B) copied, 0.000396399 s, 7.6 kB/s
[root@centos7 ~]#cat f2
abc456[root@centos7 ~]#  # 從f1中跳過了3字節並複製其後的3字節插入到f2的3字節後面
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 skip=3 seek=3 conv=notrunc  # 不截斷f2後面的內容 
3+0 records in
3+0 records out3 bytes (3 B) copied, 0.00277328 s, 1.1 kB/s
[root@centos7 ~]#cat f2
abc456ghijklmnopqrstuvwxyz[root@centos7 ~]#

備份MBR:

[root@centos7 ~]#dd if=/dev/sda of=/testdir/sda.mbr bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000380182 s, 1.3 MB/s
[root@centos7 ~]#

磁盤拷貝:

[root@centos7 ~]#dd if=/dev/sda of=/dev/sdb

破壞MBR中的bootloader:

[root@centos7 ~]#dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
1+0 records in
1+0 records out
64 bytes (64 B) copied, 0.00180836 s, 35.4 kB/s
[root@centos7 ~]#

破壞MBR中的分區表:

[root@centos7 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.00589307 s, 10.9 kB/s
[root@centos7 ~]#

wKiom1fLfWjxcFH2AABfFjxJ6C0113.png

可見,sda的分區已經被破壞!

修復sda分區表:

[root@centos7 ~]#dd if=/testdir/sda.mbr of=/dev/sda bs=512 count=1 
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000348826 s, 1.5 MB/s
[root@centos7 ~]#partprobe # 同步分區表
[root@centos7 ~]#

wKioL1fLfY_ydC_QAAC-IoykDts725.png

sda被成功修復!

備份:

dd if=/dev/sdx of=/dev/sdy
    將本地的/dev/sdx整盤備份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
    將/dev/sdx全盤數據備份到指定路徑的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
    備份/dev/sdx全盤數據,並利用gzip工具進行壓縮,保存到指定路徑
[root@centos7 ~]#dd if=/dev/sdb1 |gzip > /testdir/image.gz
409600+0 records in
409600+0 records out
209715200 bytes (210 MB) copied, 9.02236 s, 23.2 MB/s
[root@centos7 ~]#ll /testdir/image.gz
-rw-r--r--. 1 root root 139129150 Aug 29 08:16 /testdir/image.gz
[root@centos7 ~]#

恢復:

dd if=/path/to/image of=/dev/sdx
將備份文件恢復到指定盤
gzip -dc /path/to/image.gz | dd of=/dev/sdx將壓縮的備份文件恢復到指定盤
[root@centos7 ~]#gzip -cd /testdir/image.gz |dd of=/dev/sdc
409600+0 records in
409600+0 records out
209715200 bytes (210 MB) copied, 6.16743 s, 34.0 MB/s
[root@centos7 ~]#
拷貝內存資料到硬盤
dd if=/dev/mem of=/root/mem.bin bs=1024
將內存裏的數據拷貝到root目錄下的mem.bin文件
從光盤拷貝iso鏡像
dd if=/dev/cdrom of=/root/cd.iso
拷貝光盤數據到root文件夾下,並保存爲cd.iso文件
銷燬磁盤數據
dd if=/dev/urandom of=/dev/sda1
利用隨機的數據填充硬盤,在某些必要的場合可以用來銷燬數據。執行此操作以後,/dev/sda1將無法掛載,創建和拷貝操作無法執行。

得到最恰當的block size: 通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小

wKiom1fLffOD6_InAADR_atN1Xo942.png

測試硬盤讀寫速度:通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度

[root@centos7 ~]#dd if=/root/1Gb.file bs=64k |dd of=/dev/null
[root@centos7 ~]#dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

wKioL1fLfhXTS-ESAACF2isvqX8970.png

修復磁盤

[root@centos7 ~]#dd if=/dev/sda of=/dev/sda

當硬盤較長時間(比如1,2年)放置不使用後,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,並可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。


系統配額

SWAP

交換分區是系統RAM(裸設備)的補充,涉及到的基本命令有:mkswap, swapon, swapoff, 其優先級範圍爲0-32767,如果用戶未指定swap的優先級,內核會給swap指定一個優先級,此值從-1開始,每加一個優先級遞減一;用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數);swap分區即可以是一個整個硬盤,也可以是一個分區(要指定分區類型)或者是將一個文件創建成swap分區

mkswap - set up a Linux swap area
swapon, swapoff - enable/disable devices and files for paging and swapping

基本設置包括:

創建交換分區或者文件

使用mkswap寫入特殊簽名

在/etc/fstab文件中添加適當的條目

使用swapon -a 激活交換空間

即:swap分區---> 格式化---> 掛載--> 激活

創建一個swap分區:

wKiom1fLfkqAAHOZAAB4AMYpbSo336.png

[root@centos7 ~]#dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.75694 s, 611 MB/s
[root@centos7 ~]#ls


wKioL1fLfoSz-4EZAAAqfEtkcGw199.png

格式化swap分區:

[root@centos7 ~]#mkswap /dev/sdc1Setting up swapspace version 1, size = 10485756 KiB
no label, UUID=a0ac8c08-23b9-4672-bee3-449e949cea8c

[root@centos7 ~]#mkswap /swapfile Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=4659cff5-5718-4119-a70e-6283ca443509
[root@centos7 ~]#

寫入/etc/fstab

wKiom1fLfpeTshawAACcU6DlWpk929.png

[root@centos7 /]#swapon -a    # 激活/etc/fstab中的swap類型
[root@centos7 /]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sdc1                               partition       10485756        0       10
/swapfile                               file    1048572 0       -1

wKiom1fLfrXRye9wAABBaWfVunQ485.png

由此,你當然可以想到,mkfs命令應該把一個文件“做成”普通分區,並且掛載之:

[root@centos7 ~]#dd if=/dev/zero of=/testdir/partfile bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00416736 s, 252 MB/s

[root@centos7 ~]#mkfs.ext4 /testdir/partfile  # mkfs.xfs不行
[root@centos7 ~]#blkid /testdir/partfile
/testdir/partfile: UUID="e925d5a7-6def-430c-99e0-c4dc966caadf" TYPE="ext4" 
[root@centos7 ~]#
[root@centos7 ~]#mkdir /testdir/partfile
[root@centos7 ~]#mount -a
[root@centos7 ~]#mount |grep /testdir/
/testdir/partfile on /mnt/partfile type ext4 (rw,relatime,seclabel)
[root@centos7 ~]#
[root@centos7 ~]#cd /mnt/partfile/
[root@centos7 /mnt/partfile]#ls
lost+found
[root@centos7 /mnt/partfile]#

移動介質

所有的移動介質要想被內核認可,必須得掛載,而掛載意味着使外來的文件系統看起來如同是主目錄樹的一部分,且必須要遵守:訪問前、介質必須被掛載;摘除時,介質必須被卸載。

按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、USB等等), 且掛載點通常在/media 或/mnt下。

如何使用光盤:

eject命令卸載或彈出磁盤,刻錄光盤可用以下命令:

wodim–v –eject centos.iso

創建IOS文件可用以下命令:

cp/dev/cdrom /root/centos7.isomkisofs -r -o /root/etc.iso /etc

手工掛載

mount /dev/cdrom/mnt/

那如何在/etc/fstab文件裏面掛載iso文件呢?如何把普通文件也掛載到一個目錄上呢?

wKioL1fLfzXQ3H7zAABnTgAXrTM464.png

wKioL1fLf0WSsX4GAABCilVAwd0169.png

wKiom1fLf1TQxwErAADN9OoZEJU728.png


磁盤配額

所謂磁盤配額,就是超級用戶給普通用戶分配一定的磁盤空間,以防止普通用戶佔用大量的磁盤空間; 磁盤配額是在內核中執行,以文件系統爲單位啓用,可以做到對不同的組或用戶制定不同的策略,且根據塊或節點進行限制;另外,磁盤配額的限制分別軟限制(soft limit)與硬限制(hatd limit),軟限制就是達到一定磁盤額度後給予警告,而硬限制就是非常強硬地限制你的所作所爲,除了建立空文件和空目錄(提前是你的節點數沒達到上限,即還有空留的inode。

磁盤配額的常用命令:

usrquota: 啓用用戶配額
grpquota:啓用組配額 
noquota: 不啓用配額 

quotacheck, quotaon, quotaoff, repquota

實現磁盤配額主要有以下五個步驟:

1.啓用配置掛載選項 
vim /etc/fstab  usrquota,grpquota2. 創建配額數據庫
mount -o remount /dev/sdb1
quotacheck -cug /home
setenforce 03. 啓用數據庫
quotaon /home4. 配置配額項
edquota liansir
edquota -p liansir shitou
setquota tom 100000 150000 0 0 /home5.測試
quota liansir
repquota /home

硬盤配額/home目錄

在Linux中,磁盤配額是針對分區進行的,而不是硬盤,即磁盤配額是以文件系統爲單位,在下面的試驗中,我們將對/home目錄進行硬盤配額,需要讓home獨立分區,但是現在home不是獨立分區是和根一起的,如果想要實現就需要在根上做磁盤配額,但是這樣是不合理的。需要把home獨立到一個分區。

所以,此時我們需要完成的一項工作就是把/home遷移到五個獨立的文件系統。

分區、格式化、掛載一步不能少:

[root@centos7 ~]#mkfs.ext4 /dev/sdb3 -L /home   # 設其卷標爲/home
[root@centos7 ~]#blkid /dev/sdb3
/dev/sdb3: LABEL="/home" UUID="e18fa7a2-d436-4bd5-bfdb-453d0af53fb6" TYPE="ext4" 
[root@centos7 ~]#
[root@centos7 ~]#mkdir /mnt/home
[root@centos7 ~]#mount /dev/sdb3 /mnt/home  # 新設備必須掛載才能使用

接下來,還存在一個問題,就是把/home下的數據遷移到新分區/dev/sdb3上面,複製或移動都可以,但要注意權限不要被改變!

wKioL1fLf3_xTdHSAABYlrdPkvc649.png

掛載到/home目錄,注意/home目錄下數據的遷移;所以/dev/sdb3不是一次到位掛載到/home,而是先掛載到了一個其它的空目錄,待完成數據遷移後再掛載到/home。最後取消之前的掛載。注:在centos 7上只會顯示最後一次掛載。

wKiom1fLf5CAbg1VAABfveeEGEs041.png

磁盤配額的準備工作至此結束!如果是對一個普通的空目錄進行硬盤配額的話也就沒有數據遷移這回事了。

下面正式磁盤配額:

  1. 初始化:在/etc/fstab配置文件裏面寫入分區掛載選項:usrquota, grpquota;初始化數據庫:checkquota, 注意初始化磁盤配額數據庫前可能需要重新掛載

wKiom1fLf67STPNcAAAiIqLjEI8493.png

[root@centos7 ~]#mount -o remount /home
[root@centos7 ~]#quotacheck -cug /home

wKioL1fLf76jKZztAABGNFCo-XA434.png

[root@centos7 /home]#file aquota.group aquota.user #這兩個文件是數據庫的二進制文件,而非文本文件
aquota.group: data
aquota.user:  data
[root@centos7 /home]#

注:在centos 6上面會提示權限不允許,需要關閉SELinux,setenforce 0.

  1. 啓用數據庫:

[root@centos7 ~]#quotaon /home
[root@centos7 ~]#quotaon -p /home
group quota on /home (/dev/sdb3) is on
user quota on /home (/dev/sdb3) is on
[root@centos7 ~]#
  1. 配置用戶的磁盤配額

[root@centos7 ~]#edquota liansir

wKiom1fLf9bDfikgAAAzWMR2vjE180.png

直接原處修改:

wKioL1fLf-rgEjFdAAAjH5_vP64042.png

  1. 切換到普通用戶的家目錄,測試

wKioL1fLf_qjSjK5AAEGsbYCmPY554.png

測試成功!

用戶調查:查看特定用戶的磁盤配額情況

[root@centos7 ~]#quota liansir   
Disk quotas for user liansir (uid 1000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb3  102400*  80000  102400   6days     133       0       0

配額概述:查看指定分區的磁盤配額情況

[root@centos7 ~]#repquota /home*** Report for user quotas on device /dev/sdb3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
liansir   +-  102400   80000  102400  6days     133     0     0       
hacker    --      52       0       0             13     0     0       
xue       --      32       0       0              8     0     0       
[root@centos7 ~]#

我們看到,liansir用戶是有磁盤配額了,現在如果要把hacker用戶的磁盤配額設置成與liansir一樣,我們此時只是一條命令搞定!edquata -p

[root@centos7 ~]#edquota -p liansir hacker
[root@centos7 ~]#

當然,我們還可以在命令行裏面直接設置用戶的磁盤配額:

[root@centos7 ~]#setquota xue 100000 200000 0 0 /home  #注意要指定分區
[root@centos7 ~]#

wKiom1fLgCfCaBBKAABVd7tGl6I214.png


RAID

RAID (Redundant Arrays of Independent Disks), 即獨立冗餘磁盤陣列,其重要技術是同位檢查(Parity Check), 在多塊硬盤組成的陣列中任意一個硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬盤中。

磁盤陣列其樣式有三種,一是外接式磁盤陣列櫃、二是內接式磁盤陣列卡,三是利用軟件來仿真。外接式磁盤陣列櫃最常被使用大型服務器上,具可熱交換(Hot Swap)的特性;內接式磁盤陣列卡,價格相對便宜,需要較高的安裝技術,硬件陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫遊、超高速緩衝等功能;軟件仿真的方式,是指通過操作系統自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。其中,前兩者稱爲硬RAID,軟件仿真稱爲軟RAID.

RAID是有級別的,本文以軟RAID爲例,且RAID級別之間可以按需組合;配置RAID時的主要命令爲mdadm, 且內核中提供有md模塊(multi devices),RAID設備可命名爲/dev/md0、/dev/md1、/dev/md2、/dev/md3等。

mdadm

mdadm - manage MD devices aka Linux Software RAID
mdadm [mode] <raiddevice> [options] <component-devices>


MODES
   mdadm has several major modes of operation:

   -A, --assemble
          Assemble a pre-existing array.

   -B, --build
          Build a legacy array without superblocks.

   -C, --create
          Create a new array.

   -F, --follow, --monitor
          Select Monitor mode.

   -G, --grow
          Change the size or shape of an active array.
          
即:
    模式:
    創建:-C
    裝配: -A
    監控: -F
    管理:-f, -r, -a

接下來看看RAID的主要級別:

  1. RAID 0:條帶卷,strip

RAID 0最簡單的實現方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統中的磁盤驅動程序以軟件的方式串聯在一起創建一個大的卷集。只需要2塊以上的硬盤即可,無冗餘或錯誤修復能力,實現成本是最低,最大的缺點在於任何一塊硬盤出現故障,整個系統將會受到破壞,可靠性僅爲單獨一塊硬盤的1/N。所以,RAID 0一般只是在那些對數據安全性要求不高的情況下才被人們使用。

wKiom1fLgD2QU6vrAAGW-7Eimqk537.png

  1. RAID 1:鏡像卷,mirror

RAID 1稱爲磁盤鏡像,原理是把一個磁盤的數據鏡像到另一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另一塊閒置的磁盤上生成鏡像文件。具備很好的磁盤冗餘能力,但磁盤利用率爲50%,RAID 1多用在保存關鍵性的重要數據的場合。

wKioL1fLgFDC1TOpAAGUipHnD4k749.png

  1. RAID 5: 帶奇偶校驗的條帶機

RAID 5的奇偶校驗碼存在於所有磁盤上,其中的p0代表第0帶區的奇偶校驗值,其它亦然,對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

wKioL1fLgGHRgSuMAAGJUAeX4iI889.png

  1. RAID 01

RAID 01是RAID0與RAID1的結合體,數據除分佈在多個盤上外,每個盤都有其物理鏡像盤,提供全冗餘能力,允許一個以下磁盤故障,而不影響數據可用性,並具有快速讀/寫能力。RAID 01要在磁盤鏡像中建立帶區集至少4個硬盤。

wKiom1fLgHORcu5zAAI7ZQxC1Io046.png

  1. RAID 10

RAID 10是一個帶區結構加一個鏡象結構,可以相互補充,達到既高效又高速的目的。主要用於數據容量不大,但要求速度和差錯控制的數據庫中。

wKioL1fLgIagBPA2AAIO_bxl-tA790.png

注:RAID級別圖片來自網絡。

介紹完RAID的主要級別,我們再來看看mdadm具體的模式命令吧!

-C: 創建模式    
    -n #: 使用#個塊設備來創建此RAID;    
    -l #:指明要創建的RAID的級別;    
    -a {yes|no}:自動創建目標RAID設備的設備文件;    
    -c CHUNK_SIZE: 指明塊大小;    
    -x #: 指明空閒盤的個數;
    
-D:顯示raid的詳細信息;    
    mdadm-D /dev/md#
    
管理模式:
    -f: 標記指定磁盤爲損壞    
    -a: 添加磁盤    
    -r: 移除磁盤觀察md的狀態:
    cat /proc/mdstat
    
停止md設備:
    mdstat -S DVICE

OK,現在我們來實現一個RAID 5, 4個RAID盤,1個備用盤,總共5個盤。

我們準備四個硬盤,並都創建一個大小爲10G的分區:

sdb      8:16   0   20G  0 disk 
└─sdb1   8:17   0   10G  0 part 
sdd      8:48   0   20G  0 disk 
└─sdd1   8:49   0   10G  0 part 
sdc      8:32   0   20G  0 disk 
└─sdc1   8:33   0   10G  0 part 
sde      8:64   0   20G  0 disk 
└─sde1   8:65   0   10G  0 part 
sdf      8:80   0   20G  0 disk 
└─sdf1   8:81   0   10G  0 part 
[root@centos6 ~]#
  1. 創建RAID: /dev/md0

[root@centos6 ~]#mdadm -C /dev/md0 -l 5 -n 4 -x 1 /dev/sd{b,d,c,e,f}1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@centos6 ~]#

查看:

[root@centos6 ~]#ll /dev/md0
brw-rw----. 1 root disk 9, 0 Sep  2 20:17 /dev/md0
[root@centos6 ~]#cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde1[5] sdf1[4](S) sdc1[2] sdd1[1] sdb1[0]      
31446528 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
[root@centos6 ~]#
  1. 格式化RAID

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

查看:

[root@centos6 ~]#blkid /dev/md0
/dev/md0: UUID="0ea747b9-c98e-47fd-b08d-fd346ecbd654" TYPE="ext4" 
[root@centos6 ~]#
  1. 掛載

wKiom1fLgPaCPameAABAXTHgerU211.png

[root@centos6 ~]#mkdir /mnt/md0
[root@centos6 ~]#mount -a

查看:

[root@centos6 ~]#mount |grep /dev/md0
/dev/md0 on /mnt/md0 type ext4 (rw)
[root@centos6 ~]#
  1. 測試

[root@centos6 ~]#cd /mnt/md0
[root@centos6 /mnt/md0]#touch f1      # 可創建文件
[root@centos6 /mnt/md0]#
[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdb1  # 損壞
/dev/sd1mdadm: set /dev/sdb1 faulty in /dev/md0
[root@centos6 ~]#
[root@centos6 ~]#mdadm /dev/md0 -r /dev/sdb1  # 熱移除
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@centos6 ~]#

至此,我們重啓系統!

wKioL1fLgSri6hokAAAcWmJtHDE567.png

wKiom1fLgTjTymv7AAAd2ZP_rxY349.png

重啓系統後我們發現RAID失效了!不過這個跟損壞/dev/sdb1沒關係

此時再次重複以上步驟!

在重啓系統之前我們必須先備份!

[root@centos6 ~]#mdadm -Ds /dev/md0 > /etc/mdadm.conf  # 否則重啓系統後RAID失效

然後重啓系統:

wKioL1fLgVHSwZgHAABfIPZD0zs624.png

查看RAID:

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

wKiom1fLgWPjd9nZAACauBmqPeY792.png

wKioL1fLgXPjcl-hAABywGh1ht8546.png

再次測試:

[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@centos6 ~]#

wKioL1fLgYeyMcR2AABDLqNfcwo587.png

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

wKiom1fLgcvi49g5AAA7m8K9LW8281.png

此時備用盤已經被移除,

在RAID盤裏創建一些文件,然後我們再移除一塊RAID硬盤。

[root@centos6 /mnt/md0]#dd if=/dev/zero of=/mnt/md0/f2 bs=100M count=1
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 0.254593 s, 412 MB/s
[root@centos6 /mnt/md0]#ll
total 102416
-rw-r--r--. 1 root root         0 Sep  2 21:56 f1
-rw-r--r--. 1 root root 104857600 Sep  2 21:56 f2
drwx------. 2 root root     16384 Sep  2 21:28 lost+found
[root@centos6 /mnt/md0]#
[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdf1
mdadm: set /dev/sdf1 faulty in /dev/md0
[root@centos6 ~]#mdadm /dev/md0 -r /dev/sdf1
mdadm: hot removed /dev/sdf1 from /dev/md0
[root@centos6 ~]#
[root@centos6 ~]#cd /mnt/md0  #查看數據是否正常
[root@centos6 /mnt/md0]#ls
f1  f2  lost+found
[root@centos6 /mnt/md0]#

wKioL1fLghKxmd1-AACPs4hPwUs449.png

測試成功!

  1. RAID管理:添加新的分區與擴展新成員(在硬盤的數量上進行擴展)

[root@centos6 ~]#mdadm /dev/md0 -a /dev/sdg1  # 給RAID添加新分區
mdadm: added /dev/sdg1
[root@centos6 ~]#

wKiom1fLgjfherH0AAA6SKXjDPI642.png

wKioL1fLgkXD_5d8AAA662-6s2k993.png

[root@centos6 ~]#mdadm -G /dev/md0 -n 6 -a /dev/sdh1  # 擴展
mdadm: added /dev/sdh1

注意,在做RAID時,最好各硬盤的分區一樣大,因爲會以最小的爲標準,多餘的空間則會浪費掉;另外,生產環境中無人用軟RAID,軟RAID僅用途測試與理解RAID用!

本文主要介紹了dd命令的常規用法、如何建立交換分區SWAP、常用RAID的基本特性與RAID 5的配置. 2016.9.3

止戰


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章