一,什么是raid?
RAID(Redundant Arrays of Independent Disks)中文叫磁盤陣列。
簡單來講就是把很多的硬盤組織在一起來使用。
RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種:NRAID,JBOD,RAID0,RAID1,RAID10,RAID3,RAID5等。目前經常使用的是RAID5和RAID10。
本文主要介紹常用的RAID0,RAID1,RAID10,RAID4,RAID5
①RAID 0
RAID 0即Data Stripping(數據分條技術)。整個邏輯盤的數據是被分條(stripped)分布在多個物理磁盤上,可以并行讀/寫,提供最快的速度,但沒有冗余能力。我們通過RAID 0可以獲得更大的單個邏輯盤的容量,且通過對多個磁盤的同時讀取獲得更高的存取速度。RAID 0首先考慮的是磁盤的速度和容量,忽略了安全,只要其中一個磁盤出了問題,那么整個陣列的數據都會不保了。
優點:對數據的讀寫有很大提升
缺點:不提供冗余能力
至少2塊磁盤
②RAID 1
RAID 1,又稱鏡像方式,也就是數據的冗余。在整個鏡像過程中,只有一半的磁盤容量是有效的(另一半磁盤容量用來存放同樣的數據)。同RAID 0相比,RAID 1首先考慮的是安全性,容量減半、速度不變。
優點:對數據的讀取性能提升;具有冗余能力,當磁盤中的一塊壞掉后,不會損失任何數據
缺點:對數據的寫入的性能下降,空間的利用率低,僅有1/2
所需磁盤數:至少兩塊
③RAID 10
為了達到既高速又安全,出現了RAID 10(或者叫RAID 0 1),可以把RAID 10簡單地理解成由多個磁盤組成的RAID 0陣列再進行鏡像。
優點:對數據的讀寫性能都有很大的提升,并且對數據有冗余能力每一個組的任何一個磁盤損壞不會影響數據的損失,并且更換磁盤修復時,不用遍歷整個磁盤
缺點:空間利用率低僅有1/2,同組的磁盤同時損壞時就會造成整個磁盤陣列的數據崩潰
所需磁盤數:至少四個
④RAID 4
在RAID0的基礎思想上引入了校驗碼的概念,也就是拿出一塊磁盤來存放校驗碼,以備磁盤損壞的時候,能通過校驗盤來找回數據。
優點:采用校驗技術;有一個特定的磁盤作為數據的完全存儲,其他的磁盤采用條帶技術,進行對數據的讀寫性能都有提高并且磁盤利用率高,磁盤損壞一個或者是校驗盤損壞也不會造成數據的流失,可以重新計算為(n-1)/n(n代表磁盤個數)
缺點:校驗碼盤訪問量大的性能很大程度的牽制著整個磁盤陣列的性能校驗碼盤很有可能會成為性能的瓶頸,并且修復損壞磁盤的數據的需要遍歷整個陣列,修復慢,性能損失大
所需磁盤數:至少三個磁盤
⑤RAID5:
在RADI4基礎上的進行了改良,讓所有盤都能用來存放校驗碼。
優點:采用校驗技術;與RAID不同的是每個磁盤都是校驗盤,輪替的當做校驗盤的功能,降低了對單個磁盤的巨大的訪問量,使其讀寫性能在RAID4 的基礎上又了提高;與RAID4相同磁盤的損壞個數只能有一個,校驗盤損壞也不會造成數據的流失,都可以重新計算
缺點: 修復損壞磁盤的數據的需要遍歷整個陣列,修復慢,性能損失大,相對RAID4有很大的改善
需要磁盤數:至少三塊
二,RAID有硬件和軟件實現的方式,下面為大家帶來軟件創建一個可用空間為5G的RAID1設備的步驟:
工具:mdadm模式化工具
命令: 命令的語法格式:madadm [mode] <raiddevice> [optiongs] <component-devices>
支持的RAID級別:LINEAE,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10
模式:
創建:-C
裝配:-A
監控:-F
管理:-f, -r,-c
<raiddevice>:/dev/md#
<component-devices>:任意塊設備
-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設備:
mdadm -S /dev/md#
環境:虛擬機下的CentOS 6.8 64位
[root@totooco6 ~]# cat /etc/issue CentOS release 6.8 (Final) Kernel \r on an \m
這里要用到的磁盤是sdb,sdc,sdd
[root@totooco6 ~]# fdisk -l | grep sd Disk /dev/sda: 16.1 GB, 16106127360 bytes /dev/sda1 * 1 64 512000 83 Linux /dev/sda2 64 1959 15215616 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes Disk /dev/sdc: 5368 MB, 5368709120 bytes Disk /dev/sdd: 5368 MB, 5368709120 bytes
用fdisk工具分區,設置分區類型id為fd
[root@totooco6 ~]# fdisk -l | grep sd Disk /dev/sda: 16.1 GB, 16106127360 bytes /dev/sda1 * 1 64 512000 83 Linux /dev/sda2 64 1959 15215616 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes /dev/sdb1 1 652 5237158+ fd Linux raid autodetect Disk /dev/sdc: 5368 MB, 5368709120 bytes /dev/sdc1 1 652 5237158+ fd Linux raid autodetect Disk /dev/sdd: 5368 MB, 5368709120 bytes /dev/sdd1 1 652 5237158+ fd Linux raid autodetect
mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1
[root@totooco6 ~]# mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.
查看一下創建進度
[root@totooco6 ~]# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0] 5233024 blocks super 1.2 [2/2] [UU] unused devices: <none>
已經完成,查看詳細信息
[root@totooco6 ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Jun 10 11:06:42 2016 Raid Level : raid1 Array Size : 5233024 (4.99 GiB 5.36 GB) Used Dev Size : 5233024 (4.99 GiB 5.36 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Jun 10 11:07:08 2016 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Name : totooco6.8:1 (local to host totooco6.8) UUID : 8baef42a:f845df94:9addff79:32cef574 Events : 17 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 49 - spare /dev/sdd1
可以看到,raid1已經創建好,由/dev/sd1 /dev/sdc1 /dev/sdd1組成,其中sdd1是空閑盤。下面創建文件系統:
[root@totooco6 ~]# mkfs.ext4 /dev/md1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1308256 blocks 65412 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
寫入配置文件,不然重啟之后會自動命名md1為md127
[root@totooco6 ~]# mdadm -Ds > /etc/mdadm.conf [root@totooco6 ~]# cat /etc/mdadm.conf ARRAY /dev/md1 metadata=1.2 spares=1 name=totooco6.8:1 UUID=36371dde:0ae4fccc:8383159d:5d1b21fd
掛載相應目錄
[root@totooco6 ~]# mkdir /md1 [root@totooco6 ~]# mount /dev/md1 /md1 [root@totooco6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_totooco6-lv_root 13G 744M 12G 7% / tmpfs 497M 0 497M 0% /dev/shm /dev/sda1 477M 28M 425M 7% /boot /dev/mapper/testvg-testlv 2.9G 7.6M 2.7G 1% /users /dev/md1 4.8G 10M 4.6G 1% /md1
為了讓開機自動掛載,寫入自動掛載文件/etc/fstab
[root@totooco6 ~]# echo /dev/md1 /md1 ext4 defaults 0 0 >> /etc/fstab
好了,文件夾/md1可以正常使用了.
注:本文部分資料和圖片來自互聯網
原創文章,作者:Net20_totooco,如若轉載,請注明出處:http://www.www58058.com/18024