Linux/Centos7RAID磁盤陣列與陣列卡

Linux/Centos7RAID磁盤陣列與陣列卡

1、RAID概念?

RAID——獨立磁盤冗餘陣列(Redundant Array of Independent Disks),本來叫作廉價磁盤冗餘陣列。RAID 的基本思想是將多個容量較小、相對廉價的磁盤進行有機組合,從而以較低的成本得到與昂貴大容量磁盤至關的容量、性能、可靠性。隨着磁盤成本和價格的不斷下降, RAID 可使用大部分的磁盤, 「廉價」 已經毫無心義。因此RAID諮詢委員會使用「獨立」代替「廉價」。linux

2、爲何須要RAID?

RAID的種類目前來講使用的較多的是RAID0、RAID一、RAID五、RAID6。RAID的初心是爲大型服務器提供高端的存儲功能和冗餘的數據安全,但RAID0顯然是不符合該要求的,由於RAID0是爲了極大程度地提升數據讀寫(I/O)的效率和硬盤的使用率,所以其原理是同時向多個磁盤中同時寫入信息,可是不保證數據的安全可靠性,有一塊磁盤掛了就沒法致使數據丟失,適用於僅僅只須要高讀寫能力的場景,然後面的類型對於數據的安全與可靠性都有了明顯的改善與增強。算法

RAID1——鏡像複製,使用兩塊或以上的磁盤(通常是偶數塊)進行讀寫,向一塊磁盤中寫入信息,而且複製一份到另外一塊磁盤中,這樣保證了數據的可靠讀寫,二者互不影響,可是使用率只有本來資源的一半,因此是可靠性較強但資源耗費也是比較大的。shell

說白了,RAID0是隻在意速度,而RAID1考慮的是安全。而RAID5則是由三塊磁盤構成,憑藉算法進行奇偶差錯校驗來確保數據的可靠性的同時兼顧磁盤使用率,其容許一塊磁盤掛掉,可是在修復重建數據的時間段中不能夠再有磁盤損壞,不然數據仍然會丟失。安全

RAID6則是基於RAID5的基礎上進行雙重校驗以保證兩塊磁盤掛掉的狀況下數據仍然不會丟失。可是其讀寫性能就比較低了尤爲是磁盤損壞的時候,讀寫速度將急劇降低,並且價格方面也是較其餘而言更加昂貴。服務器

3、軟RAID配置實驗操做流程

  1. 首先將分區類型轉換爲fd(前提是已經添加磁盤)
  2. 管理RAID磁盤
  3. 格式化文件格式
  4. 掛載

下面對RAID0進行配置的實驗操做:less

[root@lokott ~]# lsblk                                           //查看磁盤概要信息
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0    6G  0 part /boot
├─sda2   8:2    0   20G  0 part /
├─sda3   8:3    0    4G  0 part [SWAP]
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0   10G  0 part /home
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 
sdd      8:48   0   20G  0 disk 
sde      8:64   0   20G  0 disk 
sr0     11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

[root@lokott ~]# fdisk /dev/sdb           //設置b磁盤分區格式爲fd
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x363a740e 建立新的 DOS 磁盤標籤。

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):
將使用默認值 41943039
分區 1 已設置爲 Linux 類型,大小設爲 20 GiB

命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出全部代碼):fd
已將分區「Linux」的類型更改成「Linux raid autodetect」

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。

[root@lokott ~]# fdisk /dev/sdc 
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x1d0b68fc 建立新的 DOS 磁盤標籤。

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):
將使用默認值 41943039
分區 1 已設置爲 Linux 類型,大小設爲 20 GiB

命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出全部代碼):fd
已將分區「Linux」的類型更改成「Linux raid autodetect」

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。
//查看分區是否正確
[root@lokott ~]# fdisk -l /dev/sd[b-c]

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x363a740e

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盤 /dev/sdc:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x1d0b68fc

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect
[root@lokott ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]          //mdadm命令進行RAID磁盤管理
mdadm: chunk size defaults to 512K         //md0是本身取的RAID0的設備名稱,-l是level,0表示的是RAID0
mdadm: partition table exists on /dev/sdb   //1 就是RAID1,5就是RAID5,-n表示須要幾塊磁盤,後面的加的
mdadm: partition table exists on /dev/sdb but will be lost or //就是磁盤數量
       meaningless after creating array
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@lokott ~]# lsblk /dev/md0                                 //查看概要信息的確是RAID0
NAME MAJ:MIN RM SIZE RO TYPE  MOUNTPOINT
md0    9:0    0  40G  0 raid0 
[root@lokott ~]# mkfs -t xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@lokott ~]# mount /dev/md0 /mnt
[root@lokott ~]# df -hT
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sda2      xfs        20G  4.4G   16G   22% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.1M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs          tmpfs      98M   20K   98M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/md0       xfs        40G   33M   40G    1% /mnt

4、總結

其實軟RAID的磁盤陣列的設置仍是比較簡單的,對於其餘類型的RAID的配置的步驟是同樣的,固然也但是設置備份,就是在mdadm命令的最後加上-xn (n表示的是備用的磁盤的數量),而後加上設備名稱,這裏主要是軟RAID的設置操做。ide

相關文章
相關標籤/搜索