中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

軟RAID相關概念介紹及配置方法

發布時間:2020-07-18 09:34:25 來源:網絡 閱讀:393 作者:mb5c7bb57d7f7e8 欄目:系統運維

企業級的數據庫應用大多部署在RAID磁盤陣列的服務器上,這樣能提高磁盤的訪問性能,并能夠實現容錯/容災。
RAID(冗余磁盤陣列),簡單理解,就是拿一些廉價的硬盤來做成陣列。其目的無非是為了擴展存儲容量,提升讀寫性能,實現數據冗余(備份容災)。

主流的大概可以分為幾個級別:RAID 0、RAID 1、RAID 5、RAID6、RAID 10、 RAID 01、RAID 50等。

  • RAID 0 簡稱磁盤條帶化,它可以提供最好的讀寫性能,如果你把兩塊磁盤做成了RAID0,那么在寫入數據的時候,就可以同時對A磁盤和B磁盤執行寫入操作。這里需要說明的是:“可以同時...寫入操作”,并不是意味著將文件的相同內容“在同一時間內完全寫入”A磁盤和B磁盤中。打 個比方:有一個100M的文件需要寫入磁盤中,假設單個磁盤的寫入速度是10M/S,那么需要10秒鐘才能完成寫入工作。但如果在具有A、B兩塊磁盤的 RAID 0陣列環境中,(以秒/S為最小單位的)單時間內,可以將10M內容寫入A磁盤中,并同時將緊隨的10M內容寫入B磁盤中,這樣算起來,寫入速度變成了 20M/S,只需要5秒鐘就能搞定了,而且每塊磁盤中只需存儲50M的文件內容,不會造成硬盤存儲壓力。當然,上訴例子也許不恰當,也只是指的理論環境 下,實際環境中會有很多其他因素,效率肯定不能達到。
    可以肯定的是,這樣肯定是能提高讀寫性能的,但是這樣也帶來了一個問題就是,如果其中的一部 分數據丟失了,你的全部數據都不會找回來的,因為RAID0沒有提供冗余恢復數據的策略。所以RAID0可以用在只讀的數據庫數據表,或者是經過復制過來 的數據庫上,如果你對數據丟失不敏感的話,也可以使用RAID 0,總之這個level下是高性能、無冗余。

  • RAID 1 磁盤鏡像它提高了讀的性能,降低了寫的性能,因為它采用了一塊磁盤做冗余備份的方法,這樣如果你有兩塊50G的磁盤,那么加起來就是100G,但是在RAID 1下,那么你只能使用50G ,這種方法會影響磁盤的空間使用,降低了I/O 寫的性能。通俗點來講:你將一個100M的文件寫入RAID 1時,將內容寫入A磁盤的同時,也會將相同的內容寫入B磁盤中。 這樣一來,兩塊磁盤的內容是完全一致的(這就傳說中的”冗余“,并不是什么高深的東西)。本來只需要寫入1塊硬盤的,可是現在要寫入到兩塊硬盤去,效率肯 定會變低。至于“讀”操作,RAID 1環境下,由于兩塊磁盤上有相同的內容,讀取操作同時在兩塊磁盤上進行,所以讀性能得到提升,關于數據冗余方面,只是當第一個硬盤數據損壞或 者掛掉了,就啟動第二塊硬盤。當然,兩塊硬盤都掛了,那就真的崩潰了。哈哈。值得一提的是,有些書或者文章上講,RAID 1是在將第一塊硬盤寫入完成后,才將數據完整復制到第二塊磁盤中做為鏡像備份的這種說法有待考證,按我的理解,是同時復制寫入的。
  • RAID 5 與RAID1 不同之處就是多了奇偶校驗,所有的奇偶校驗的信息會遍布各個磁盤,性能上要比RAID1高些,但是一旦發生磁盤I/O失敗,就會造成性能急劇下降,同時這 種方法也在RAID0 與RAID1間折了中,是比較通用的做法。 用簡單的語言來表示,至少使用3塊硬盤(也可以更多)組建RAID5陣列,當有數據寫入硬盤的時候,按照1塊硬盤的方式就是直接寫入這塊硬盤的,如果是 RAID5的話這次數據寫入會分根據算法分成3部分,然后寫入這3塊硬盤,寫入的同時還會在這3塊硬盤上寫入校驗信息,當讀取寫入的數據的時候會分別從3 塊硬盤上讀取數據內容,再通過檢驗信息進行校驗。當其中有1塊硬盤出現損壞的時候,就從另外2塊硬盤上存儲的數據可以計算出第3塊硬盤的數據內容。也就是說RAID5這種存儲方式只允許有一塊硬盤出現故障,出現故障時需要盡快更換。當更換故障硬盤后,在故障期間寫入的數據會進行重新校驗。 如果在未解決故障又壞1塊,那就是災難性的了。
  • RAID 10 (和RAID 01沒什么區別,就是前者在RAID 1的基礎上做RAID 0,后者反了過來而已 )就是RAID0 與 RAID1的組合,它提供了高性能,高可用性, 性能上要比RAID5好,特別適合大量寫入的應用程序,但是就是成本比較高無論是多少塊磁盤你都是將損失一半的磁盤存儲。至少需要4塊硬盤 才能完成,A和B做數據分割,分別存儲一半的數據,C和D分別對應做A和B的鏡像備份。這樣一來,可真是完美了,也是我理想中的最佳狀態。也不需要 RAID 5的奇偶校驗。很顯然,這樣子成本也會高一些。還有一點很遺憾的就是性能的”短板效應“,

通過上面RAID 10的介紹也就明白了RAID 50的性能模式了吧?這里就不介紹了。

下面是一個綜合各種RAID 等級的性能以及應用場景:
軟RAID相關概念介紹及配置方法

軟RAID配置命令——mdadm
命令格式:

[root@localhost ~]# mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sd[b,c,d,e]
或者
[root@localhost ~]# mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1

關于上述的選項與參數介紹:

  • -C --create:創建模式
  • -a --auto {yes|no}:同意創建設備,如不加此參數時必須先使用mknod 命令來創建一個RAID設備,不過推薦使用-a yes參數一次性創建;
  • -l --level #:陣列模式,支持的陣列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
  • -n #:使用#個塊設備來創建此RAID(-n 3 表示用3塊硬盤來創建這個RAID)
  • -x #:當前陣列中熱備盤只有#塊(-x 1 表示熱備盤只有1塊)

創建RAID舉例(以RAID 5為例)
需求如下:

  1. 利用4個分區組成RAID 5,其中一個分區作為預備磁盤,當工作中的RAID損壞后,預備磁盤頂上;
  2. 每個分區大小為20GB;
  3. 利用1個分區設置為預備分區;
  4. 掛載到/test目錄使用】

開始配置:

1、創建RAID 5:

[root@localhost ~]# fdisk -l | grep  磁盤      #以下就是用來做RAID 5的磁盤
                    ..........................#省略部分內容
磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
磁盤標簽類型:gpt
磁盤 /dev/sdc:21.5 GB, 21474836480 字節,41943040 個扇區
磁盤標簽類型:gpt
磁盤 /dev/sdd:21.5 GB, 21474836480 字節,41943040 個扇區
磁盤標簽類型:gpt
磁盤 /dev/sde:21.5 GB, 21474836480 字節,41943040 個扇區
磁盤標簽類型:gpt
                    ..........................#省略部分內容
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd[b,c,d,e]
                     ........................#忽略部分提示信息
Continue creating array? y                   #輸入“y”進行確認
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.       #/dev/md0創建成功。
[root@localhost ~]# cat /proc/mdstat       #查詢剛剛創建的RAID信息
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]   #組成RAID的實體磁盤及其順序
 41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]  
 #相關信息,chunk大小及RAID等級說明,后面的三個U代表正常,若不是U則代表有誤。

unused devices: <none>

[root@localhost ~]# mdadm -D /dev/md0      #這個命令查看出來的結果更人性化寫
/dev/md0:                          #RAID的設備文件名
           Version : 1.2
     Creation Time : Thu Sep  5 09:37:42 2019    #創建RAID的時間
        Raid Level : raid5      #RAID的等級,這里是RAID5
        Array Size : 41908224 (39.97 GiB 42.91 GB)    #整組RAID的可用量
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)     #每顆磁盤的可用容量
      Raid Devices : 3      #組成RAID的磁盤數量
     Total Devices : 4       #包括spare的總磁盤數
       Persistence : Superblock is persistent

       Update Time : Thu Sep  5 09:39:28 2019
             State : clean          #目前這個RAID的使用狀態
    Active Devices : 3        #啟動的設備數量
   Working Devices : 4       #目前使用于此RAID的設備數量
    Failed Devices : 0            #損壞的設備數量
     Spare Devices : 1      #預備磁盤的數量

            Layout : left-symmetric
        Chunk Size : 512K             #chunk的小區塊容量

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : d395d245:8f9294b4:3223cd47:b0bee5d8
            Events : 18
#以下是每個磁盤的使用情況,包括三個active  sync和一個spare
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde
#RaidDevice是指此RAID內的磁盤順序

2、格式化并進行掛載使用:

[root@localhost ~]# mkfs.xfs /dev/md0          #格式化剛剛創建的RAID 5
[root@localhost ~]# mkdir /test       #創建掛載點
[root@localhost ~]# mount /dev/md0 /test       #掛載
[root@localhost ~]# df -hT /test      #確認掛載,使用起來和普通文件系統沒有區別
文件系統       類型  容量  已用  可用 已用% 掛載點
/dev/md0       xfs    40G   33M   40G    1% /test
#將掛載信息寫入/etc/fstab中進行開機自動掛載了,設備名可以是/dev/md0,也可以是設備的UUID。
[root@localhost ~]# blkid /dev/md0     #查詢該RAID 5的UUID
/dev/md0: UUID="93830b3a-69e4-4cbf-b255-f43f2ae4864b" TYPE="xfs" 
[root@localhost ~]# vim /etc/fstab   #打開/etc/fstab,寫入下面內容
UUID=93830b3a-69e4-4cbf-b255-f43f2ae4864b /test xfs     defaults        0 0

3、測試RAID 5:

關于測試,必然涉及到了一些管理RAID的參數,如下:

  • -f --fail:會將后面的設備設置成為出錯的狀態;
  • -a --add:會將后面的設備加入到這個md中;
  • -r --remove:會將后面這個設備由這個md中移除;

[root@localhost ~]# echo "hi,girl,good morning." > /test/a.txt   #寫入數據
[root@localhost ~]# cat /test/a.txt     #查看
hi,girl,good morning.
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb    #將/dev/sdb損壞
mdadm: set /dev/sdb faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0     #查看RAID  5的狀態
/dev/md0:
           Version : 1.2
     Creation Time : Thu Sep  5 09:37:42 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu Sep  5 10:47:00 2019
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1        #查到失敗的磁盤有1個
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : d395d245:8f9294b4:3223cd47:b0bee5d8
            Events : 39

    Number   Major   Minor   RaidDevice State
       3       8       64        0      active sync   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty   /dev/sdb       #這就是剛才損壞的磁盤
#可以發現作為預備磁盤已經頂替了損壞的磁盤了
[root@localhost ~]# df -hT /test      #可用容量還是40G
文件系統       類型  容量  已用  可用 已用% 掛載點
/dev/md0       xfs    40G   33M   40G    1% /test
root@localhost ~]# mdadm /dev/md0 -r /dev/sdb     #將損壞的磁盤移除RAID組
mdadm: hot removed /dev/sdb from /dev/md0
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdf      #添加一塊磁盤到RAID組
mdadm: added /dev/sdf
[root@localhost ~]# mdadm -D /dev/md0    #查看RAID組的成員狀態
/dev/md0:
                       .............#省略部分內容
    Number   Major   Minor   RaidDevice State
       3       8       64        0      active sync   /dev/sde
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd

       5       8       80        -      spare   /dev/sdf   
             #新添加的磁盤已經成為了RAID組的預備磁盤

4、將RAID組重設置為普通磁盤

[root@localhost ~]# umount /test
[root@localhost ~]# vim /etc/fstab
                       .............#省略部分內容
UUID=93830b3a-69e4-4cbf-b255-f43f2ae4864b /test xfs     defaults        0 0             
#將設置的RAID  5自動掛載刪除
[root@localhost ~]# dd if=/dev/zero of=/dev/md0 bs=1M count=50
#損壞RAID的超級區塊
[root@localhost ~]# mdadm --stop /dev/md0     #停止RAID的使用
mdadm: stopped /dev/md0
#以下操作是將RAID中成員磁盤的超級塊信息覆蓋
[root@localhost ~]# dd if=/dev/zero of=/dev/sdc bs=1M count=10
[root@localhost ~]# dd if=/dev/zero of=/dev/sdd bs=1M count=10
[root@localhost ~]# dd if=/dev/zero of=/dev/sde bs=1M count=10
[root@localhost ~]# dd if=/dev/zero of=/dev/sdf bs=1M count=10
[root@localhost ~]# cat /proc/mdstat         #確認下面不存在該RAID
Personalities : [raid6] [raid5] [raid4] 
unused devices: <none>

經過以上操作即恢復成了普通磁盤,但是原本的數據都沒有了,后續使用沒有深入研究,可以使用一些重新檢測的命令進行系統掃描或者重啟系統,即可掛載使用,否則可能會掛載不上。

重新檢測命令:

[root@localhost ~]# partprobe /dev/sdc

———————— 本文至此結束,感謝閱讀

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金堂县| 东源县| 通化市| 建阳市| 浠水县| 新野县| 新邵县| 徐州市| 大兴区| 开江县| 鄄城县| 锡林浩特市| 石林| 江永县| 吴桥县| 灵宝市| 囊谦县| 密山市| 枣阳市| 曲松县| 麦盖提县| 潞城市| 灵宝市| 宁陵县| 临汾市| 华安县| 永清县| 静海县| 庆城县| 灵川县| 崇义县| 满洲里市| 和硕县| 惠东县| 启东市| 安塞县| 全南县| 拉孜县| 大同县| 崇仁县| 鹤山市|