因为RAID实际使用是使用RAID卡来控制RAID设备的构建。
但是RAID设备一旦空间构建完毕,那么其分区空间无法扩展,所以我们raid一定要做足够的空间,然后通过LVM来把block空间变为PE空间,动态的去使用RAID设备的空间给不同的挂载点。
比如假设24块2T的硬盘,4个做成一个raid5.
然后在将这四个raid5设备假设是
/dev/md0-5,分别打上pv的标签。然后进行vg的构建,然后给lv分配PE空间。
然后为/根文件系统指定一个可扩展的LV空间。给/boot。一个LV可扩展的LV空间。然后是给/home 一个可扩展的LV空间。
这里是先RAID ,然后把空间分成PE给LV使用。
那么如果是先把磁盘打上pv。分成PE,建立lv,然后对lv做raid,那么raid的空间就是可变的了。raid5就是至少4块,3块做数据其中1块的空间做校验,实际可用2块lv空间,然后1块或多块lv空间做spare使用。这样会是什么样子呢。
假设这个raid5设备为/dev/mdx,然后对齐做格式化文件系统。放置/跟文件系统。
/dev/mdx下面是4个lv空间如果/根文件系统不够用的话,扩展所有LV的空间。也是不停机动态增加空间。这个时候存在的问题是如果一个磁盘损坏
,可能的是影响多个LV。因为LV的PE是从pv这里划分的。但是LV坏了,相当raid坏了啊,你去其他的lv先找,spare lv恢复,(这里是我们假设对lv做raid,但是如果是不做raid的话,一旦下面的PV算话,数据一样是会都丢失。)然后你把硬盘换上就行。这个就不智能了,不想raid有spare盘直接加。
而如果是先raid,再lv的话,如果一个磁盘坏了。lv存放的PE,存放的数据,下面raid能够计算出来。然后spare盘会补进去,影响不会太大。lv找PE ,你先去其他2个盘找,等我rebuild完了,你再来找。
所以就目前而言,RAID+LVM是比较好的以这种硬件冗余
再加分布式文件系统,多个数据冗余那就是天作之合了。这里说的是普通数据,像数据库数据都是有数据库内容的备份机制和专业存储设备做结合使用。
当然,我们就需要定时监控系统硬盘使用空间,inode使用空间,和磁盘损坏的状况。是否能查询到设备信息了。自动化运维工具有人开发,我们使用即可,当然一些小的script脚本就是自己编写了。像网络现在也在做自动化维护。但是基本的东西还是需要我们这些攻城狮去搞定的,上面都是程序猿的天下。所以从哪里混都是小兵,旗手还是程序猿,将军还是boss,指哪打哪啊。