什么是 RAID

磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,容错式廉价磁盘阵列。 RAID 可以通过一些技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘设备; 而这个较大的磁盘功能可不止是储存而已,他还具有数据保护的功能呢。整个 RAID 由亍选择的等级 (level) 不同,而使得整合后的磁盘具有不同的功能, 基本常见的 level 有这几种(注1):

RAID-0 (等量模式, stripe):效能最佳
这种模式如果使用相同型号与容量的磁盘来组成时,效果较佳。这种模式的 RAID 会将磁盘先切出等量的区块 (举例来说, 4KB), 然后当一个文件要写入 RAID 时,该文件会依据块的大小切割好,之后再依序放到各个磁盘里面去。由于每个磁盘会交错的存放数据, 因此当你的数据要写入 RAID 时,数据会被等量的放置在各个磁盘上面。举例来说,你有两颗磁盘组成 RAID-0 , 当你有 100MB 的数据要写入时,每个磁盘会各被分配到 50MB 的储存量。RAID-0 的示意图如下所示:

RAID-1 (映像模式, mirror):完整备份
这种模式也是需要相同的磁盘容量的,最好是一模一样的磁盘啦!如果是不同容量的磁盘组成 RAID-1 时,那么总容量将以最小的那一颗磁盘为主!这种模式主要是『让同一份数据,完整的保存在两颗磁盘上头』。举例来说,如果我有一个 100MB 的档案,且我仅有两颗磁盘组成 RAID-1 时, 那么这两颗磁盘将会同步写入 100MB 到他们的储存空间去。 因此,整体 RAID 的容量几乎少了 50%。由于两颗硬盘内容一模一样,好像镜子映照出来一样, 所以我们也称他为 mirror(镜像) 模式。

RAID 0+1,RAID 1+0
RAID-0 的效能佳但是数据不安全,RAID-1 的数据安全但是效能不佳,那么能不能将这两者整合起来设置 RAID 呢? 可以啊!那就是 RAID 0+1 或 RAID 1+0。所谓的 RAID 0+1 就是: (1)先让两颗磁盘组成 RAID 0,再让这样的设置共有两组; (2)将这两组 RAID 0 再组成一组 RAID 1。这就是 RAID 0+1 啰!反过来说,RAID 1+0 就是先组成 RAID-1 再组成 RAID-0 的意思。

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

Spare Disk:预备磁盘的功能
当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。换成新磁盘并且顺利启劢磁盘阵列后, 磁盘阵列就会开始主动的重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然后你磁盘阵列上面的数据就复原了! 这就是磁盘阵列的优点。不过,我们还是得要动手拔插硬盘,此时通常得要关机才能这么做。 为了让系统可以实时的在坏掉硬盘时主动的重建,因此就需要预备磁盘 (spare disk) 的辅助。 所谓的 spare disk 就是一颗或多颗没有包含在原本磁盘阵列等级中的磁盘,这颗磁盘平时并不会被磁盘阵列所使用, 当磁盘阵列有任何磁盘损毁时,则这颗 spare disk 会被主动的拉进磁盘阵列中,再将坏掉的那颗硬盘移出磁盘阵列! 然后立即重建数据系统。如此你的系统则可以永保安康啊!若你的磁盘阵列有支持热拔插那就更完美了! 直接将坏掉的那颗磁盘拔除换一颗新的,再将那颗新设置成为 spare disk ,就完成了!

磁盘阵列的优点:

说的口沫横飞,重点在哪里呢?其实你的系统如果需要磁盘阵列的话,其实重点在于:
 数据安全与可靠性:指的并非信息安全,而是的那个硬件 (指磁盘) 损毁时,数据是否还能够安全的救援或使用之意;
 读写效能:例如 RAID 0 可以加强读写效能,让你的系统 I/O 部分得以改善;
 容量:可以让多块磁盘组合起来,故单一文件系统可以有相当大的容量。
尤其数据的可靠性与完整性更是使用 RAID 的考虑重点!毕竟硬件坏掉换掉就好了,软件数据损毁那可不是闹着玩的! 所以企业界为何需要大量的 RAID 来做为文件系统的硬件基准,现在您有点了解了吧?

software, hardware RAID

硬件磁盘阵列 (hardware RAID) 是透过磁盘阵列卡来达成数组的目的。 磁盘阵列卡上面有一块专门的芯片在处理 RAID 的仸务,因此在效能方面会比较好。在很多任务 (例如 RAID 5 的同位检查码计算) 磁盘阵列并不会重复消耗原本系统的 I/O 总线,理论上效能会较佳。此外目前一般的中高阶磁盘阵列卡都支持热拔插, 亦即在不关机的情况下抽换损坏的磁盘,对于系统的复原与数据的可靠性方面非常的好用。

软件磁盘阵列 (software RAID)。软件磁盘阵列主要是透过软件来仿真数组的仸务, 因此会损耗较多的系统资源,比如说 CPU 的运算不 I/O 总线的资源等。

另外你必项要知道的是,硬件磁盘阵列在 Linux 底下看起来就是一颗实际的大磁盘,因此硬件磁盘阵列的装置文件名为 /dev/sd[a-p] ,因为使用到 SCSI 的模坑之故。至于软件磁盘阵列则是系统仿真的,因此使用的装置文件名是系统的装置文件, 文件名为 /dev/md0, /dev/md1...,两者的装置文件名并不相同!

软件磁盘阵列的设定:

  1. # mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N /dev/sdx /dev/hdx...
  2. 选顷不参数:
  3. --create :为建立 RAID 的参数。
  4. --auto=yes :决定建立后面接的软件磁盘阵列装置,亦即 /dev/md0,/dev/md1...
  5. --raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的装置
  6. --spare-devices=N :使用几个磁盘作为备用 (spare) 装置
  7. --level=[015] :设定这组磁盘阵列的等级。支持很多,不过建议只要用 0, 1, 5 即可
  8. --detail :后面所接的那个磁盘阵列装置的详绅信息

利用我的测试机来建置一个 RAID 5 的软件磁盘阵列给您瞧瞧!

  1. [root@linux ~]# fdisk -l
  2. Disk /dev/sda: 8589 MB, 8589934592 bytes
  3. 255 heads, 63 sectors/track, 1044 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Device Boot      Start         End      Blocks   Id  System
  6. /dev/sda1   *           1          13      104391   83  Linux
  7. /dev/sda2              14         274     2096482+  82  Linux swap / Solaris
  8. /dev/sda3             275        1044     6185025   83  Linux
  9. Disk /dev/sdb: 8589 MB, 8589934592 bytes
  10. 255 heads, 63 sectors/track, 1044 cylinders
  11. Units = cylinders of 16065 * 512 = 8225280 bytes
  12. Device Boot      Start         End      Blocks   Id  System
  13. Disk /dev/sdc: 8589 MB, 8589934592 bytes
  14. 255 heads, 63 sectors/track, 1044 cylinders
  15. Units = cylinders of 16065 * 512 = 8225280 bytes
  16. Device Boot      Start         End      Blocks   Id  System
  17. Disk /dev/sdd: 8589 MB, 8589934592 bytes
  18. 255 heads, 63 sectors/track, 1044 cylinders
  19. Units = cylinders of 16065 * 512 = 8225280 bytes
  20. Device Boot      Start         End      Blocks   Id  System
  21. Disk /dev/sde: 8589 MB, 8589934592 bytes
  22. 255 heads, 63 sectors/track, 1044 cylinders
  23. Units = cylinders of 16065 * 512 = 8225280 bytes
  24. Device Boot      Start         End      Blocks   Id  System
  25. Disk /dev/sdf: 8589 MB, 8589934592 bytes
  26. 255 heads, 63 sectors/track, 1044 cylinders
  27. Units = cylinders of 16065 * 512 = 8225280 bytes
  28. Disk /dev/sdf doesn't contain a valid partition table

下面是我希望做成的 RAID 5 环境:
 利用 4 个磁盘组成 RAID 5;
 每个磁盘约为 8GB 大小,需确定每个磁盘一样大较佳;
 利用 1 个磁盘设定为 spare disk
 这个 spare disk 的大小与其他 RAID 所需磁盘一样大!
 将此 RAID 5 装置挂载到 /mnt/raid 目录下
最终我需要 5 个 8GB 的磁盘。

  1. [root@linux ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{b,c,d,e,f}
  2. mdadm: array /dev/md0 started.
  3. [root@linux ~]# mdadm --detail /dev/md0
  4. /dev/md0:                                                  --RADI设备名
  5. Version : 0.90
  6. Creation Time : Thu Feb 16 19:11:44 2012                 --RAID被创建的时间
  7. Raid Level : raid5                                    --RAID等级为RAID 5
  8. Array Size : 25165632 (24.00 GiB 25.77 GB)            --此RAID的可用磁盘容量
  9. Used Dev Size : 8388544 (8.00 GiB 8.59 GB)               --每个设备的可用容量
  10. Raid Devices : 4                                        --用作RAID的设备数量
  11. Total Devices : 5                                        --全部设备的数量
  12. Preferred Minor : 0
  13. Persistence : Superblock is persistent
  14. Update Time : Thu Feb 16 19:14:22 2012
  15. State : clean
  16. Active Devices : 4                                        --启动的设备数量
  17. Working Devices : 5                                        --可动作的设备数量
  18. Failed Devices : 0                                        --出现错误的设备数量
  19. Spare Devices : 1                                        --预备磁盘的数量
  20. Layout : left-symmetric
  21. Chunk Size : 64K
  22. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b      --此设备的RAID标识符
  23. Events : 0.2
  24. Number   Major   Minor   RaidDevice State
  25. 0       8       16        0      active sync   /dev/sdb
  26. 1       8       32        1      active sync   /dev/sdc
  27. 2       8       48        2      active sync   /dev/sdd
  28. 3       8       64        3      active sync   /dev/sde
  29. 4       8       80        -      spare   /dev/sdf

也可以查阅如下的档案杢看看系统软件磁盘阵列的情况:

  1. [root@linux ~]# cat /proc/mdstat
  2. Personalities : [raid6] [raid5] [raid4]
  3. md0 : active raid5 sde[3] sdf[4](S) sdd[2] sdc[1] sdb[0]                --第一行
  4. 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]      --第二行
  5. unused devices: <none>

第一行部分:指出 md0 为 raid5 ,丏使用了 sdb, sdc, sdd, sde 等四颗磁盘装置。每个装置后面的中括号 [] 内的数字为此磁盘在 RAID 中的顺序 (RaidDevice);至亍 sdf 后面的 [S] 则代表 sdf 为 spare 之意。

第二行:此磁盘阵列拥有 25165632 个block(每个 block 单位为 1K),所以怪容量约为24GB, 使用 RAID 5 等级,写入磁盘的小区坑 (chunk) 大小为 64K,使用 algorithm 2 磁盘阵列算法。 [m/n] 代表此数组需要 m 个装置,且 n 个装置正常运作。因此本 md0 需要 4 个装置且这 4 个装置均正常运作。 后面的 [UUUU] 代表的是四个所需的装置 (就是 [m/n] 里面的 m) 的启劢情况,U 代表正常运作,若为 _ 则代表不正常。

格式化与挂载使用RAID

  1. [root@linux ~]# mkfs -t ext3 /dev/md0
  2. mke2fs 1.39 (29-May-2006)
  3. Filesystem label=
  4. OS type: Linux
  5. Block size=4096 (log=2)
  6. Fragment size=4096 (log=2)
  7. 3145728 inodes, 6291408 blocks
  8. 314570 blocks (5.00%) reserved for the super user
  9. First data block=0
  10. Maximum filesystem blocks=0
  11. 192 block groups
  12. 32768 blocks per group, 32768 fragments per group
  13. 16384 inodes per group
  14. Superblock backups stored on blocks:
  15. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  16. 4096000
  17. Writing inode tables: done
  18. Creating journal (32768 blocks): done
  19. Writing superblocks and filesystem accounting information: done
  20. This filesystem will be automatically checked every 22 mounts or
  21. 180 days, whichever comes first.  Use tune2fs -c or -i to override.
  22. [root@linux ~]# mkdir /mnt/raid
  23. [root@linux ~]# mount /dev/md0 /mnt/raid/
  24. [root@linux ~]# df
  25. 文件系统               1K-块        已用     可用 已用% 挂载点
  26. /dev/sda3              5991232   2656564   3025420  47% /
  27. /dev/sda1               101086     11373     84494  12% /boot
  28. tmpfs                   517548         0    517548   0% /dev/shm
  29. /dev/md0              24770748    176200  23336268   1% /mnt/raid

仿真 RAID 错误的救援模式

  1. # mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]
  2. 参数:
  3. --add :会将后面的设备加入到这个 md 中!
  4. --remove :会将后面的设备从这个 md 中移除
  5. --fail :会将后面的设备设定成为出错的状态

设置磁盘为错误

  1. [root@linux raid]# cp -a /etc/ /var/log/ /mnt/raid/            --先复制一些数据
  2. [root@linux raid]# df /mnt/raid/
  3. 文件系统               1K-块        已用     可用 已用% 挂载点
  4. /dev/md0              24770748    279932  23232536   2% /mnt/raid
  5. [root@linux raid]# du -sm /mnt/raid/*
  6. 106     /mnt/raid/etc                 --看吧!确实有数据在里面
  7. 2       /mnt/raid/log
  8. 1       /mnt/raid/lost+found
  9. [root@linux raid]# ll /mnt/raid/
  10. 总计 40
  11. drwxr-xr-x 101 root root 12288 02-16 20:37 etc
  12. drwxr-xr-x  16 root root  4096 02-16 18:24 log
  13. drwx------   2 root root 16384 02-16 20:36 lost+found
  14. [root@linux raid]# mdadm --manage /dev/md0 --fail /dev/sdb          --假设这个磁盘设备出错了。
  15. mdadm: set /dev/sdb faulty in /dev/md0
  16. [root@linux raid]# mdadm --detail /dev/md0
  17. /dev/md0:
  18. Version : 0.90
  19. Creation Time : Thu Feb 16 19:11:44 2012
  20. Raid Level : raid5
  21. Array Size : 25165632 (24.00 GiB 25.77 GB)
  22. Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
  23. Raid Devices : 4
  24. Total Devices : 5
  25. Preferred Minor : 0
  26. Persistence : Superblock is persistent
  27. Update Time : Thu Feb 16 20:51:49 2012
  28. State : clean, degraded, recovering
  29. Active Devices : 3
  30. Working Devices : 4
  31. Failed Devices : 1                                      --出错的磁盘有一个
  32. Spare Devices : 1
  33. Layout : left-symmetric
  34. Chunk Size : 64K
  35. Rebuild Status : 16% complete
  36. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
  37. Events : 0.4
  38. Number   Major   Minor   RaidDevice State
  39. 4       8       80        0      spare rebuilding   /dev/sdf
  40. 1       8       32        1      active sync   /dev/sdc
  41. 2       8       48        2      active sync   /dev/sdd
  42. 3       8       64        3      active sync   /dev/sde
  43. 5       8       16        -      faulty spare   /dev/sdb
  44. [root@linux raid]# cat /proc/mdstat
  45. Personalities : [raid6] [raid5] [raid4]
  46. md0 : active raid5 sde[3] sdf[4] sdd[2] sdc[1] sdb[5](F)
  47. 25165632 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
  48. [======>..............]  recovery = 34.3% (2878256/8388544) finish=3.2min speed=28577K/sec
  49. unused devices: <none>

重建完毕的RAID 5情况

  1. [root@linux raid]# cat /proc/mdstat
  2. Personalities : [raid6] [raid5] [raid4]
  3. md0 : active raid5 sde[3] sdf[0] sdd[2] sdc[1] sdb[4](F)
  4. 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
  5. unused devices: <none>
  6. [root@linux raid]# mdadm --detail /dev/md0
  7. /dev/md0:
  8. Version : 0.90
  9. Creation Time : Thu Feb 16 19:11:44 2012
  10. Raid Level : raid5
  11. Array Size : 25165632 (24.00 GiB 25.77 GB)
  12. Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
  13. Raid Devices : 4
  14. Total Devices : 5
  15. Preferred Minor : 0
  16. Persistence : Superblock is persistent
  17. Update Time : Thu Feb 16 21:02:31 2012
  18. State : clean
  19. Active Devices : 4
  20. Working Devices : 4
  21. Failed Devices : 1
  22. Spare Devices : 0
  23. Layout : left-symmetric
  24. Chunk Size : 64K
  25. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
  26. Events : 0.12
  27. Number   Major   Minor   RaidDevice State
  28. 0       8       80        0      active sync   /dev/sdf
  29. 1       8       32        1      active sync   /dev/sdc
  30. 2       8       48        2      active sync   /dev/sdd
  31. 3       8       64        3      active sync   /dev/sde
  32. 4       8       16        -      faulty spare   /dev/sdb

将错误的磁盘删除并加入新磁盘

  1. [root@linux raid]# mdadm --manage /dev/md0 --remove /dev/sdb
  2. mdadm: hot removed /dev/sdb
  3. [root@linux raid]# cat /proc/mdstat
  4. Personalities : [raid6] [raid5] [raid4]
  5. md0 : active raid5 sde[3] sdf[0] sdd[2] sdc[1]
  6. 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
  7. unused devices: <none>
  8. [root@linux raid]# mdadm --detail /dev/md0
  9. /dev/md0:
  10. Version : 0.90
  11. Creation Time : Thu Feb 16 19:11:44 2012
  12. Raid Level : raid5
  13. Array Size : 25165632 (24.00 GiB 25.77 GB)
  14. Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
  15. Raid Devices : 4
  16. Total Devices : 4
  17. Preferred Minor : 0
  18. Persistence : Superblock is persistent
  19. Update Time : Thu Feb 16 21:06:32 2012
  20. State : clean
  21. Active Devices : 4
  22. Working Devices : 4
  23. Failed Devices : 0
  24. Spare Devices : 0
  25. Layout : left-symmetric
  26. Chunk Size : 64K
  27. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
  28. Events : 0.14
  29. Number   Major   Minor   RaidDevice State
  30. 0       8       80        0      active sync   /dev/sdf
  31. 1       8       32        1      active sync   /dev/sdc
  32. 2       8       48        2      active sync   /dev/sdd
  33. 3       8       64        3      active sync   /dev/sde
  34. [root@linux raid]# mdadm --manage /dev/md0 --add /dev/sdb
  35. mdadm: added /dev/sdb
  36. [root@linux raid]# mdadm --detail /dev/md0
  37. /dev/md0:
  38. Version : 0.90
  39. Creation Time : Thu Feb 16 19:11:44 2012
  40. Raid Level : raid5
  41. Array Size : 25165632 (24.00 GiB 25.77 GB)
  42. Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
  43. Raid Devices : 4
  44. Total Devices : 5
  45. Preferred Minor : 0
  46. Persistence : Superblock is persistent
  47. Update Time : Thu Feb 16 21:06:32 2012
  48. State : clean
  49. Active Devices : 4
  50. Working Devices : 5
  51. Failed Devices : 0
  52. Spare Devices : 1
  53. Layout : left-symmetric
  54. Chunk Size : 64K
  55. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
  56. Events : 0.14
  57. Number   Major   Minor   RaidDevice State
  58. 0       8       80        0      active sync   /dev/sdf
  59. 1       8       32        1      active sync   /dev/sdc
  60. 2       8       48        2      active sync   /dev/sdd
  61. 3       8       64        3      active sync   /dev/sde
  62. 4       8       16        -      spare   /dev/sdb
  63. [root@linux raid]# cat /proc/mdstat
  64. Personalities : [raid6] [raid5] [raid4]
  65. md0 : active raid5 sdb[4](S) sde[3] sdf[0] sdd[2] sdc[1]
  66. 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
  67. unused devices: <none>

开机自动启动RAID并自动挂载

  1. [root@linux raid]# mdadm --detail /dev/md0 | grep UUID
  2. UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
  3. [root@linux raid]# vi /etc/mdadm.conf
  4. ARRAY /dev/md0 UUID=84c5171f:50290a3e:8673f81b:4cc9501b
  5. [root@linux raid]# vi /etc/fstab
  6. /dev/md0                /mnt/raid               ext3    defaults        1 2
  7. [root@linux ~]# umount /dev/md0
  8. [root@linux ~]# df
  9. 文件系统               1K-块        已用     可用 已用% 挂载点
  10. /dev/sda3              5991232   2655024   3026960  47% /
  11. /dev/sda1               101086     11373     84494  12% /boot
  12. tmpfs                   517548         0    517548   0% /dev/shm
  13. [root@linux ~]# mount -a                                              --参数 -a:依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
  14. [root@linux ~]# df
  15. 文件系统               1K-块        已用     可用 已用% 挂载点
  16. /dev/sda3              5991232   2655024   3026960  47% /
  17. /dev/sda1               101086     11373     84494  12% /boot
  18. tmpfs                   517548         0    517548   0% /dev/shm
  19. /dev/md0              24770748    279936  23232532   2% /mnt/raid

关闭软件RAID

除非你未来就是要使用这颗 software RAID (/dev/md0),否则你势必要将这个 /dev/md0 关闭!如果你只是将 /dev/md0 卸除,然后忘记将 RAID 关闭, 结果就是....未来你在重新分割 /dev/sb* 时可能会出现一些莫名的错错误状况啦!

  1. # 1. 先卸载且删除配置文件内与这个 /dev/md0 有关的设置:
  2. [root@linux ~]# umount /dev/md0
  3. [root@linux ~]# vi /etc/fstab
  4. /dev/md0 /mnt/raid ext3 defaults 1 2  --将这一行删除掉!或者是批注掉也可以!
  5. # 2. 直接关闭 /dev/md0 的方法!
  6. [root@linux ~]# mdadm --stop /dev/md0
  7. mdadm: stopped /dev/md0                       --这样就关闭了!
  8. [root@linux ~]# cat /proc/mdstat
  9. Personalities : [raid6] [raid5] [raid4]
  10. unused devices: <none>                          --看吧!确实不存在仸何数组设备!
  11. [root@linux ~]# vi /etc/mdadm.conf
  12. ARRAY /dev/md0 UUID=84c5171f:50290a3e:8673f81b:4cc9501b       --同样啦!删除他或是批注他!

软件磁盘阵列 (Software RAID)的更多相关文章

  1. Linux学习-软件磁盘阵列 (Software RAID)

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列.RAID 可以透过一个技术(软件或硬 ...

  2. 软件磁盘阵列(RAID)

    RAID软件磁盘阵列 RAID 即廉价磁盘冗余阵列,其高可用性和可靠性适用于大规模环境中,相比正常使用,数据更需要被保护.RAID 是将多个磁盘整合的大磁盘,不仅具有存储功能,同时还有数据保护功能. ...

  3. 软件源(Software Sources)

    写在前面:浏览了很多国内外的网站,看了很多关于软件源(Software Sources)设置的文章,发现有很多文章中对软件源的设置存在误解,为了让新人能顺利进入Ubuntu的大家庭,特地作此文,详细地 ...

  4. Ubuntu 16.04系统下软件中心Software闪退解决办法

    按住Ctrl+Alt+T打开终端输入: sudo apt-get update //更新 sudo apt-get dist-upgrade //升级 sudo apt-get install --r ...

  5. CentOS 6.3下配置软RAID(Software RAID)

    一.RAID 简介 RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array). ...

  6. 磁盘阵列(RAID)

    RAID 0亦称为带区集.它将两个以上的磁盘并联起来,成为一个大容量的磁盘.在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的.但是RA ...

  7. 一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...

  8. 【转载】一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...

  9. 计算机的组成 —— 磁盘阵列(RAID)

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意.(另外一种常见阵列,FPGA:Fiel ...

随机推荐

  1. PHP加密解密数字,适用于URL加密。

    本博主最近正在建设一个9元包邮的网站,希望各位光临指导一些意见: 9元包邮 http://www.jiubaou.com/ <?php /** * 加密解密类 * 该算法仅支持加密数字.比较适用 ...

  2. Chapter 6. Names

    6.2. Names and Identifiers A name is used to refer to an entity declared in a program. There are two ...

  3. 关于Java 下 Snappy压缩存文件

    坑点: 压缩后的byte 数组中会有元素是负数,如果转化成String 存入文件,然后再读取解压缩还原,无法得到原来的结果,甚至是无法解压缩. 原因分析: String 底层是由char 数组构成的, ...

  4. 多线程编程(三)-CountDownLatch的使用

    CountDownLatch的介绍 类CountDownLatch是同步功能得一个辅助类,使用效果就是给定一个计数,当使用CountDownLatch类的线程判断计数不为0时,则呈wait状态,如果是 ...

  5. 11 java 线程池 实现原理

    一 关键类的实现 1 ThreadPoolExecutor类 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的 ...

  6. 【LeetCode题解】94_二叉树的中序遍历

    目录 [LeetCode题解]94_二叉树的中序遍历 描述 方法一:递归 Java 代码 Python代码 方法二:非递归 Java 代码 Python 代码 [LeetCode题解]94_二叉树的中 ...

  7. 每天一道leetcode234-回文链表

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 2018. ...

  8. OC基础之访问修饰符

    做C#.Java的人都知道private.protect.public这些访问权限,在OC中看项目基本都没用到这些,昨天就好奇的仔细了解了下,其实OC中也是有这些访问权限的修饰.说实话有好多做过编程的 ...

  9. angular环境搭建时的坑

    安装angular环境踩过一些坑,最终还是把工程跑起来了,这里描述一下我的步骤,不排除有些步骤是多余的,希望能对遇到同样问题的小伙伴有帮助. 下载最新版node.js. 安装node,安装过程一路点下 ...

  10. api拆分(数据传递和接收的几种方式)

    传递方式一:对象转String 接收:String类型接收再转对象 传递方式二:Map 接收:Map 传递方式三:json(Map转json) 接收:String转Map 传递方式四:Map里放jso ...