詳細設定RAIDとLinux

博文大纲

什么是RAID
Software,hardware RAID
软件磁盘阵列的设置
仿真RAID错误的救援模式
开机自动启动RAID并自动挂载

1. RAIDとは何ですか。

安価なディスクのフォールトトレラントのアレイ:1. RAIDフルネーム「安価なディスクの冗長アレイ、RAIDは」英国は平均を回しました。

技術(ソフトウェアまたはハードウェア)によって2.RAID、より大きなディスク装置では、複数の小さなディスクに統合されます。そして、より大きなディスク機能がちょうど店以上になる可能性が、彼はまた、データ保護機能を持っています。

ディスクの統合は、異なる機能を有するように異なる全体RAIDレベル(レベル)の選択ので3.

  • RAID-0(同じ量モード、ストライプ):最高のパフォーマンス

組成物にディスク容量の同じタイプは、効果が良好である場合には、このモードが使用されます。
ファイルはRAIDに書き込まれるときに、このモデルRAIDディスクは、次にチャンク切断良いのサイズに基づいてファイルを(一般的に提供することが4K〜1Mとの間のチャンクと呼ばれる)の第1ブロックの同じ量を削減します後に順次各ディスク内部へ。
データは、各ディスク上に格納されているので、千鳥されるので、データがRAIDに書き込まれるとき、データは、各ディスクに同じ量の上に配置されます。
詳細設定RAIDとLinux

  • RAID-1(マッピングモード、ミラー):フルバックアップ

また、このモデルでは、最高のは、まったく同じディスクで、同じディスク容量が必要です。
それは異なる容量ディスクのRAID-1の場合は、総容量は、ディスクベースのように最小限になります!このモードは、「2つの完全なディスクトップに保存され、同じデータを聞かせて」にあり
、その後、このディスク2 RAID-1、私は100MBのファイルを持っている場合、たとえば、と私の2つだけのディスク彼らが行くように、ストレージの書き込み100メガバイトに同期されます。したがって、全体的なRAID容量は、ほぼ50%少ないです。私たちは、ミラーモード彼を呼び出すように、同じのうちミラーの輝きのように2台のハードドライブとまったく同じ内容、以来

詳細設定RAIDとLinux

いずれかのドライブに障害が発生したときに、2枚のディスク内のデータと全く同じので、そう、あなたのデータはまだそのまま保持されます!
バックアップの最大の利点

  • RAID 1 + 0、RAID 0 + 1(組み合わせ)

RAID-0 的性能佳但是数据不安全,RAID-1 的数据安全但是性能不佳,那么能不能将这两者整合起来设置 RAID 呢?
RAID 1+0 就是:
(1)先让两颗磁盘组成 RAID 1,并且这样的设置共有两组;
(2)将这两组 RAID 1 再组成一组 RAID 0。这就是 RAID 1+0
RAID 0+1 就是:
(1)先让两颗磁盘组成RAID 0,并且这样的设置共有两组;
(2) 将这两组RAID 0 再组成一组RAID 1 。这就是RAID 0+1

詳細設定RAIDとLinux

  • RAID5:性能与数据备份的均衡考虑

RAID-5 至少需要三颗以上的磁盘才能够组成这种类型的磁盘阵列。
这种磁盘阵列的数据写入有点类似 RAID-0 ,不过每个循环的写入过程中(striping),在每颗磁盘还加入一个同位检查数据(Parity),这个数据会记录其他磁盘的备份数据,用于当有磁盘损毁时的救援。

詳細設定RAIDとLinux

每个循环写入时,都会有部分的同位检查码(parity)被记录起来,并且记录的同位检查码每次都记录在不同的磁盘,因此,任何一个磁盘损毁时都能够借由其他磁盘的检查码来重建原本磁盘内的数据喔!不过需要注意的是,由于有同位检查码,因此 RAID 5 的总容量会是整体磁盘数量减一颗。
原本的 3 颗磁盘只会剩下(3-1)=2 颗磁盘的容量。
当损毁的磁盘数量大于等于两颗时,这整组 RAID 5 的数据就损毁了。因为 RAID 5 默认仅能支持一颗磁盘的损毁情况

读取性能:优
写入性能:一般
RAID5 :支持1颗损坏
RAID6 :支持2颗损坏
  • Spare Disk:预备磁盘的功能:

壊れたハードドライブの再構築の主導でリアルタイムにシステムのためには、あなたはディスク(スペアディスク)の支援を準備する必要があります。ディスクが破損している任意のディスクアレイがある場合、元のディスクのディスクアレイの階層に含まれていない、いわゆる単一または複数のスペアディスクは、通常風雲ディスクとディスクアレイを使用することができない、風雲スペアディスクになりますアクティブディスクアレイ内に引き込まれ、そしてハードディスクアレイ沈没の勃発!そして、すぐにデータシステムを再確立。


ディスクアレイディスクが破損した場合は、新しいディスクのため、その後、削除したいディスクが壊れている、と。

  • RAIDの利点:
  1. データセキュリティと信頼性:任意のネットワーク情報セキュリティを意味するものではありませんが、ときに、ハードウェアは、(ディスクを参照)損傷し、データがまだ安全な救助であるかを意味し;
  2. 読み取りと書き込み性能:お使いのシステムのI / O部を向上させることができるので、例えば、RAID 0は、読み取りと書き込みのパフォーマンスを向上させることができます。
  3. 容量は:マルチディスク星を組み合わせることができますので、単一のファイルシステムは、大容量を持つことができます。

詳細設定RAIDとLinux

ソフトウェア、ハードウェアRAID:

こうしたCPU操作とI / Oバスリソースなどのシステムリソース、。しかし、今、それは私たちのパソコンでは、非常に速くなって、その前の速度制限もはや存在しています!
当社のソフトウェア・ディスク・アレイのmdadm CentOSのソフトウェアを提供するために、ソフトウェアが分配されるかであるディスク装置にディスク、あなたがいる限り二つ以上のパーティション(パーティション)があるので、二つ以上のディスクを必要としませんあなたは、ディスクアレイを設計することができるであろう。
また、mdadmのサポートRAID0 / RAID1 / RAID5 /スペアディスクは、ちょうど私達は先に述べたとし... そして、管理メカニズムはまた、スワップパーティションのためのオンライン、(ファイルシステムの通常の使用を)同様のホットプラグ機能を達成することができます

ソフトウェアRAIDの設定:

詳細設定RAIDとLinux

RAIDの設定
(サーバは、ハードディスクを追加する5つのパーティションを作成するために、(5)は、各パーティションにハードディスクを追加してもよいです)

1.[root@localhost ~]# gdisk /dev/sdb   //进入硬盘

Creating new GPT entries.

Command (? for help): n   //创建分区
Partition number (1-128, default 1): 1   //默认为1
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +1G   //大小为1G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'
按照上面一样配置再建立4块分区
Command (? for help): p         //查看分区表信息
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 6A978C77-4505-4345-ABEC-AE3C31214C6D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 31457213 sectors (15.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  8300  Linux filesystem
   2         2099200         4196351   1024.0 MiB  8300  Linux filesystem
   3         4196352         6293503   1024.0 MiB  8300  Linux filesystem
   4         6293504         8390655   1024.0 MiB  8300  Linux filesystem
   5         8390656        10487807   1024.0 MiB  8300  Linux filesystem

Command (? for help): wq   //保存退出
[root@localhost ~]#  mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-e]1
命令参数:
--create    #表示要创建raid
--auto=yes /dev/md0   #新建立的软件磁盘阵列设备为md0,md序号可以为0-9
--level=5   #磁盘阵列的等级,这里表示创建是的raid5
--raid-devices     #添加作为磁盘阵列用的磁盘的块数
--spare-devices   #添加作为预备(spare)磁盘的块数
/dev/sd[b-f]1   #磁盘阵列所使用的设备,还可写成/dev/sdb1  /dev/sdc1  /dev/sdd1  /dev/sde1  
[root@localhost ~]# cat /proc/mdstat             #查看RAID的配置文件
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2** [3/3] [UUU]**

unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md0             #查看RAID配置文件详细信息
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jun 30 10:43:20 2019
  **   Raid Level : raid5**                                   #阵列类型为raid5

                                             …………              #省略部分内容

 Active Devices : 3                 #活跃的磁盘数目
Working Devices : 4               #所有的磁盘数目
 Failed Devices : 0                  #故障的磁盘数目
  Spare Devices : 1                 #热备份的磁盘数目
Number   Major   Minor   RaidDevice State
   0       8       17        0      active sync   /dev/sdb1
   1       8       33        1      active sync   /dev/sdc1
   4       8       49        2      active sync   /dev/sdd1

   3       8       65        -      spare   /dev/sde1       #一块磁盘用于热备份
[root@localhost ~]# mkfs.xfs /dev/md0
#格式化磁盘
[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/md0 /a
#挂载磁盘
[root@localhost ~]# df -hT              #查看磁盘大小

                            …………                #省略部分内容

/dev/md0            xfs        40G   33M   40G    1% /a
 [root@localhost ~]# vim /etc/fstab                  #编写文件开机自动挂载               

                                …………                #省略部分内容

/dev/md0                /a                      xfs     defaults        0 0
[root@localhost ~]# cd /a
[root@localhost a]# touch 123.txt  456.txt                #创建测试文件
[root@localhost a]# mdadm /dev/md0 -f /dev/sdb1      #模拟sdb1损坏
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@localhost a]# mdadm -D /dev/md0                  #查看/dev/md0详细信息

                   …………               #省略部分内容

    Number   Major   Minor   RaidDevice State
       3       8       65        0      spare rebuilding   /dev/sde1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       0       8       17        -      faulty   /dev/sdb1
[root@localhost a]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd1[4] sde1[3] sdc1[1] sdb1[0](F)
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [**3/3] [UUU]**

unused devices: <none>
[root@localhost a]# ll                     #查看测试的文件
总用量 0
-rw-r--r--. 1 root root 0 6月  30 11:06 123.txt
-rw-r--r--. 1 root root 0 6月  30 11:06 456.txt
[root@localhost a]# mdadm /dev/md0 -r /dev/sdb1                        #移除已损坏的磁盘
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@localhost a]# mdadm -D /dev/md0                               #查看/dev/md0详细信息

                                                                                 …………               #省略部分内容

   Number   Major   Minor   RaidDevice State
       3       8       65        0      active sync   /dev/sde1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1
[root@localhost a]# mdadm /dev/md0 -a /dev/sdb1                      #添加一块硬盘
mdadm: added /dev/sdb1
[root@localhost a]# mdadm -D /dev/md0                           #查看/dev/md0详细信息

ディスクサーバーを追加し、加えて、再起動した後:


[root@localhost a]# mdadm /dev/md0 -a /dev/sdf1
mdadm: added /dev/sdf1
[root@localhost a]# mdadm -D /dev/md0

                                                                                 …………               #省略部分内容

    Number   Major   Minor   RaidDevice State
       3       8       65        0      active sync   /dev/sde1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       5       8       17        -      spare   /dev/sdb1
       6       8       81        -      spare   /dev/sdf1
[root@localhost a]# mdadm /dev/md0 -G -n4
#-n用来指定raid中活动盘的数量。最好保证要有足够的热备盘添加。
[root@localhost a]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jun 30 10:43:20 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 : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Sun Jun 30 11:22:00 2019
          State : clean         #构建完成

                                                …………         #省略部分内容

    Number   Major   Minor   RaidDevice State
       3       8       65        0      active sync   /dev/sde1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1
       6       8       81        3      active sync   /dev/sdf1

       5       8       17        -      spare   /dev/sdb1
    #此时raid中已经由四块硬盘了
[root@localhost a]# df -hT                                       #查看之后,容量并没有发生变化
                         …………         #省略部分内容
/dev/md0            xfs        40G   33M   40G    1% /a
[root@localhost a]# resize2fs /dev/md0
#(resizefx适用于ext3,ext4等文件系统不适用于xfs文件系统)
#resize2fs命令用于更新磁盘
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/md0 时
找不到有效的文件系统超级块.
[root@localhost a]# xfs_growfs /dev/md0                            #对文件系统进行扩容
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=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               bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 10475520 to 15715584
[root@localhost a]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点

                      …………                   #省略部分内容

/dev/md0            xfs        60G   33M   60G    1% /a
#再次查看容量已经发生变化

おすすめ

転載: blog.51cto.com/14400213/2448436
おすすめ