软件磁盘阵列 (Software RAID)
什么是 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...,两者的装置文件名并不相同!
软件磁盘阵列的设定:
- # mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N /dev/sdx /dev/hdx...
- 选顷不参数:
- --create :为建立 RAID 的参数。
- --auto=yes :决定建立后面接的软件磁盘阵列装置,亦即 /dev/md0,/dev/md1...
- --raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的装置
- --spare-devices=N :使用几个磁盘作为备用 (spare) 装置
- --level=[015] :设定这组磁盘阵列的等级。支持很多,不过建议只要用 0, 1, 5 即可
- --detail :后面所接的那个磁盘阵列装置的详绅信息
利用我的测试机来建置一个 RAID 5 的软件磁盘阵列给您瞧瞧!
- [root@linux ~]# fdisk -l
- Disk /dev/sda: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sda1 * 1 13 104391 83 Linux
- /dev/sda2 14 274 2096482+ 82 Linux swap / Solaris
- /dev/sda3 275 1044 6185025 83 Linux
- Disk /dev/sdb: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- Disk /dev/sdc: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- Disk /dev/sdd: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- Disk /dev/sde: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- Disk /dev/sdf: 8589 MB, 8589934592 bytes
- 255 heads, 63 sectors/track, 1044 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- 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 的磁盘。
- [root@linux ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{b,c,d,e,f}
- mdadm: array /dev/md0 started.
- [root@linux ~]# mdadm --detail /dev/md0
- /dev/md0: --RADI设备名
- Version : 0.90
- Creation Time : Thu Feb 16 19:11:44 2012 --RAID被创建的时间
- Raid Level : raid5 --RAID等级为RAID 5
- Array Size : 25165632 (24.00 GiB 25.77 GB) --此RAID的可用磁盘容量
- Used Dev Size : 8388544 (8.00 GiB 8.59 GB) --每个设备的可用容量
- Raid Devices : 4 --用作RAID的设备数量
- Total Devices : 5 --全部设备的数量
- Preferred Minor : 0
- Persistence : Superblock is persistent
- Update Time : Thu Feb 16 19:14:22 2012
- State : clean
- Active Devices : 4 --启动的设备数量
- Working Devices : 5 --可动作的设备数量
- Failed Devices : 0 --出现错误的设备数量
- Spare Devices : 1 --预备磁盘的数量
- Layout : left-symmetric
- Chunk Size : 64K
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b --此设备的RAID标识符
- Events : 0.2
- Number Major Minor RaidDevice State
- 0 8 16 0 active sync /dev/sdb
- 1 8 32 1 active sync /dev/sdc
- 2 8 48 2 active sync /dev/sdd
- 3 8 64 3 active sync /dev/sde
- 4 8 80 - spare /dev/sdf
也可以查阅如下的档案杢看看系统软件磁盘阵列的情况:
- [root@linux ~]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- md0 : active raid5 sde[3] sdf[4](S) sdd[2] sdc[1] sdb[0] --第一行
- 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] --第二行
- 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
- [root@linux ~]# mkfs -t ext3 /dev/md0
- mke2fs 1.39 (29-May-2006)
- Filesystem label=
- OS type: Linux
- Block size=4096 (log=2)
- Fragment size=4096 (log=2)
- 3145728 inodes, 6291408 blocks
- 314570 blocks (5.00%) reserved for the super user
- First data block=0
- Maximum filesystem blocks=0
- 192 block groups
- 32768 blocks per group, 32768 fragments per group
- 16384 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
- 4096000
- Writing inode tables: done
- Creating journal (32768 blocks): done
- Writing superblocks and filesystem accounting information: done
- This filesystem will be automatically checked every 22 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.
- [root@linux ~]# mkdir /mnt/raid
- [root@linux ~]# mount /dev/md0 /mnt/raid/
- [root@linux ~]# df
- 文件系统 1K-块 已用 可用 已用% 挂载点
- /dev/sda3 5991232 2656564 3025420 47% /
- /dev/sda1 101086 11373 84494 12% /boot
- tmpfs 517548 0 517548 0% /dev/shm
- /dev/md0 24770748 176200 23336268 1% /mnt/raid
仿真 RAID 错误的救援模式
- # mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]
- 参数:
- --add :会将后面的设备加入到这个 md 中!
- --remove :会将后面的设备从这个 md 中移除
- --fail :会将后面的设备设定成为出错的状态
设置磁盘为错误
- [root@linux raid]# cp -a /etc/ /var/log/ /mnt/raid/ --先复制一些数据
- [root@linux raid]# df /mnt/raid/
- 文件系统 1K-块 已用 可用 已用% 挂载点
- /dev/md0 24770748 279932 23232536 2% /mnt/raid
- [root@linux raid]# du -sm /mnt/raid/*
- 106 /mnt/raid/etc --看吧!确实有数据在里面
- 2 /mnt/raid/log
- 1 /mnt/raid/lost+found
- [root@linux raid]# ll /mnt/raid/
- 总计 40
- drwxr-xr-x 101 root root 12288 02-16 20:37 etc
- drwxr-xr-x 16 root root 4096 02-16 18:24 log
- drwx------ 2 root root 16384 02-16 20:36 lost+found
- [root@linux raid]# mdadm --manage /dev/md0 --fail /dev/sdb --假设这个磁盘设备出错了。
- mdadm: set /dev/sdb faulty in /dev/md0
- [root@linux raid]# mdadm --detail /dev/md0
- /dev/md0:
- Version : 0.90
- Creation Time : Thu Feb 16 19:11:44 2012
- Raid Level : raid5
- Array Size : 25165632 (24.00 GiB 25.77 GB)
- Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
- Raid Devices : 4
- Total Devices : 5
- Preferred Minor : 0
- Persistence : Superblock is persistent
- Update Time : Thu Feb 16 20:51:49 2012
- State : clean, degraded, recovering
- Active Devices : 3
- Working Devices : 4
- Failed Devices : 1 --出错的磁盘有一个
- Spare Devices : 1
- Layout : left-symmetric
- Chunk Size : 64K
- Rebuild Status : 16% complete
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
- Events : 0.4
- Number Major Minor RaidDevice State
- 4 8 80 0 spare rebuilding /dev/sdf
- 1 8 32 1 active sync /dev/sdc
- 2 8 48 2 active sync /dev/sdd
- 3 8 64 3 active sync /dev/sde
- 5 8 16 - faulty spare /dev/sdb
- [root@linux raid]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- md0 : active raid5 sde[3] sdf[4] sdd[2] sdc[1] sdb[5](F)
- 25165632 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
- [======>..............] recovery = 34.3% (2878256/8388544) finish=3.2min speed=28577K/sec
- unused devices: <none>
重建完毕的RAID 5情况
- [root@linux raid]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- md0 : active raid5 sde[3] sdf[0] sdd[2] sdc[1] sdb[4](F)
- 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
- unused devices: <none>
- [root@linux raid]# mdadm --detail /dev/md0
- /dev/md0:
- Version : 0.90
- Creation Time : Thu Feb 16 19:11:44 2012
- Raid Level : raid5
- Array Size : 25165632 (24.00 GiB 25.77 GB)
- Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
- Raid Devices : 4
- Total Devices : 5
- Preferred Minor : 0
- Persistence : Superblock is persistent
- Update Time : Thu Feb 16 21:02:31 2012
- State : clean
- Active Devices : 4
- Working Devices : 4
- Failed Devices : 1
- Spare Devices : 0
- Layout : left-symmetric
- Chunk Size : 64K
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
- Events : 0.12
- Number Major Minor RaidDevice State
- 0 8 80 0 active sync /dev/sdf
- 1 8 32 1 active sync /dev/sdc
- 2 8 48 2 active sync /dev/sdd
- 3 8 64 3 active sync /dev/sde
- 4 8 16 - faulty spare /dev/sdb
将错误的磁盘删除并加入新磁盘
- [root@linux raid]# mdadm --manage /dev/md0 --remove /dev/sdb
- mdadm: hot removed /dev/sdb
- [root@linux raid]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- md0 : active raid5 sde[3] sdf[0] sdd[2] sdc[1]
- 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
- unused devices: <none>
- [root@linux raid]# mdadm --detail /dev/md0
- /dev/md0:
- Version : 0.90
- Creation Time : Thu Feb 16 19:11:44 2012
- Raid Level : raid5
- Array Size : 25165632 (24.00 GiB 25.77 GB)
- Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
- Raid Devices : 4
- Total Devices : 4
- Preferred Minor : 0
- Persistence : Superblock is persistent
- Update Time : Thu Feb 16 21:06:32 2012
- State : clean
- Active Devices : 4
- Working Devices : 4
- Failed Devices : 0
- Spare Devices : 0
- Layout : left-symmetric
- Chunk Size : 64K
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
- Events : 0.14
- Number Major Minor RaidDevice State
- 0 8 80 0 active sync /dev/sdf
- 1 8 32 1 active sync /dev/sdc
- 2 8 48 2 active sync /dev/sdd
- 3 8 64 3 active sync /dev/sde
- [root@linux raid]# mdadm --manage /dev/md0 --add /dev/sdb
- mdadm: added /dev/sdb
- [root@linux raid]# mdadm --detail /dev/md0
- /dev/md0:
- Version : 0.90
- Creation Time : Thu Feb 16 19:11:44 2012
- Raid Level : raid5
- Array Size : 25165632 (24.00 GiB 25.77 GB)
- Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
- Raid Devices : 4
- Total Devices : 5
- Preferred Minor : 0
- Persistence : Superblock is persistent
- Update Time : Thu Feb 16 21:06:32 2012
- State : clean
- Active Devices : 4
- Working Devices : 5
- Failed Devices : 0
- Spare Devices : 1
- Layout : left-symmetric
- Chunk Size : 64K
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
- Events : 0.14
- Number Major Minor RaidDevice State
- 0 8 80 0 active sync /dev/sdf
- 1 8 32 1 active sync /dev/sdc
- 2 8 48 2 active sync /dev/sdd
- 3 8 64 3 active sync /dev/sde
- 4 8 16 - spare /dev/sdb
- [root@linux raid]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- md0 : active raid5 sdb[4](S) sde[3] sdf[0] sdd[2] sdc[1]
- 25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
- unused devices: <none>
开机自动启动RAID并自动挂载
- [root@linux raid]# mdadm --detail /dev/md0 | grep UUID
- UUID : 84c5171f:50290a3e:8673f81b:4cc9501b
- [root@linux raid]# vi /etc/mdadm.conf
- ARRAY /dev/md0 UUID=84c5171f:50290a3e:8673f81b:4cc9501b
- [root@linux raid]# vi /etc/fstab
- /dev/md0 /mnt/raid ext3 defaults 1 2
- [root@linux ~]# umount /dev/md0
- [root@linux ~]# df
- 文件系统 1K-块 已用 可用 已用% 挂载点
- /dev/sda3 5991232 2655024 3026960 47% /
- /dev/sda1 101086 11373 84494 12% /boot
- tmpfs 517548 0 517548 0% /dev/shm
- [root@linux ~]# mount -a --参数 -a:依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
- [root@linux ~]# df
- 文件系统 1K-块 已用 可用 已用% 挂载点
- /dev/sda3 5991232 2655024 3026960 47% /
- /dev/sda1 101086 11373 84494 12% /boot
- tmpfs 517548 0 517548 0% /dev/shm
- /dev/md0 24770748 279936 23232532 2% /mnt/raid
关闭软件RAID
除非你未来就是要使用这颗 software RAID (/dev/md0),否则你势必要将这个 /dev/md0 关闭!如果你只是将 /dev/md0 卸除,然后忘记将 RAID 关闭, 结果就是....未来你在重新分割 /dev/sb* 时可能会出现一些莫名的错错误状况啦!
- # 1. 先卸载且删除配置文件内与这个 /dev/md0 有关的设置:
- [root@linux ~]# umount /dev/md0
- [root@linux ~]# vi /etc/fstab
- /dev/md0 /mnt/raid ext3 defaults 1 2 --将这一行删除掉!或者是批注掉也可以!
- # 2. 直接关闭 /dev/md0 的方法!
- [root@linux ~]# mdadm --stop /dev/md0
- mdadm: stopped /dev/md0 --这样就关闭了!
- [root@linux ~]# cat /proc/mdstat
- Personalities : [raid6] [raid5] [raid4]
- unused devices: <none> --看吧!确实不存在仸何数组设备!
- [root@linux ~]# vi /etc/mdadm.conf
- ARRAY /dev/md0 UUID=84c5171f:50290a3e:8673f81b:4cc9501b --同样啦!删除他或是批注他!
软件磁盘阵列 (Software RAID)的更多相关文章
- Linux学习-软件磁盘阵列 (Software RAID)
什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列.RAID 可以透过一个技术(软件或硬 ...
- 软件磁盘阵列(RAID)
RAID软件磁盘阵列 RAID 即廉价磁盘冗余阵列,其高可用性和可靠性适用于大规模环境中,相比正常使用,数据更需要被保护.RAID 是将多个磁盘整合的大磁盘,不仅具有存储功能,同时还有数据保护功能. ...
- 软件源(Software Sources)
写在前面:浏览了很多国内外的网站,看了很多关于软件源(Software Sources)设置的文章,发现有很多文章中对软件源的设置存在误解,为了让新人能顺利进入Ubuntu的大家庭,特地作此文,详细地 ...
- Ubuntu 16.04系统下软件中心Software闪退解决办法
按住Ctrl+Alt+T打开终端输入: sudo apt-get update //更新 sudo apt-get dist-upgrade //升级 sudo apt-get install --r ...
- CentOS 6.3下配置软RAID(Software RAID)
一.RAID 简介 RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array). ...
- 磁盘阵列(RAID)
RAID 0亦称为带区集.它将两个以上的磁盘并联起来,成为一个大容量的磁盘.在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的.但是RA ...
- 一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)
单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...
- 【转载】一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)
单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...
- 计算机的组成 —— 磁盘阵列(RAID)
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意.(另外一种常见阵列,FPGA:Fiel ...
随机推荐
- GitBook入门(用github做出第一本书)——超详细配图说明
我最近接触到gitbook,发现它支持markdown和git,刚好把我之前在github上的笔记可以生成一本书,于是我就开始着手捣鼓gitbook,一下午的时间就弄的差不多了,说明这个东西还是挺容易 ...
- 《LeetBook》leetcode题解(12):Integer to Roman[M]
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- android逆向基础:apk 反编译 重打包 重签名
apk 反编译大家都比较熟悉,这里只做一个笔记. 1 反编译 apk apktool d perfect.apk 这样就把资源文件解压缩了, classes.dex 也反编译成了 smali 文件 2 ...
- linux mint19 解决docker必须使用sudo问题
1 安装完docker 使用时,提示权限不够 ~$ docker info Got permission denied while trying to connect to the Docker da ...
- Gin实战:Gin+Mysql简单的Restful风格的API
我们已经了解了Golang的Gin框架.对于Webservice服务,restful风格几乎一统天下.Gin也天然的支持restful.下面就使用gin写一个简单的服务,麻雀虽小,五脏俱全.我们先以一 ...
- Web开发者的福利 30段超实用CSS代码
1.花式连字符(&) 这个类应该在span元素里使用,并且里面包括&字符.它使用经典的serif字体和斜体来增强&符号. .amp { font-family: Baskerv ...
- iOS开源项目周报0223
由OpenDigg 出品的iOS开源项目周报第九期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等.panelkit ...
- 让图片在div中居中
详情看:https://www.cnblogs.com/yyh1/p/5999152.html
- 封装简单的API——微信小程序
前几天自己琢磨微信小程序的基本开发,里边用到的技术包括WebAPI,也就是方法的封装. 当然也可以用ASP.NET MVC WCF来写接口.更简单应该就是 WinForm 简单易部署. 这里用的是 2 ...
- CentOS虚拟机不能联网状况下yum方式从本地安装软件包
大家都知道yum是linux下一个非常好用的软件安装/卸载软件,它方便操作,而且最厉害的是可以解决令人头疼的包依赖关系.但是若是你的linux不能联网,若想使用yum安装软件,可以依照下面的方法. 1 ...