最近接手一个任务(其实是个bug),在部署新服务器时,新机器没有获取到ip地址。
其实新增节点是通过pxe进行安装与部署的,pxe步骤中主机IP地址是通过dhcp获取的,dhcp服务跑在其中一台主机上。通过这个线索去查到dhcp服务所在主机,登陆上去发现dhcp服务的log报错,说dhcp的配置文件无法读取。使用cat命令查看了一下dhcp配置文件,发现报input/output error错误。头疼:(
这个dhcp的配置文件实际上保存在glusterfs上面,目的是想避免单点故障而导致dhcp配置丢失。好吧,现在放在glusterfs上了也不能用了 :(
接下来需要对glusterfs做进一步了解。上网搜索了一下glusterfs的知识。glusterfs是一个分布式的文件系统。说白了就是跨服务器管理磁盘。它有个基本单元就是brick,brick的中文含义就是砖头,这个比喻很形象,有了砖头后,你就可以开始盖房子了,房子就是volume,有了房子就可以放东西了。东西放到volume中有多个方法: 一种是distribute volume模式,就是把你的文件只放在其中一台机器上,其他机器上没有备份,其中一台机器挂了,会都丢失部分数据,这个模式基本没法用。不过如果你在单个服务器上使用raid或者其他冗余机制保障单机不丢数据,那么还可以凑合用。第二种方式为replicated volume,这种方式把文件 复制多份到每个brick中,这种方式能够实现冗余,但是份数太多的话,太浪费空间了,比如你在三台机器上做了replicated方式,每台机器100G,那么最后volume的大小还是100G,就是300G当成100G使,只有土豪才会这么干 :-)。 第三种是striped volume, 就是把一个文件切成几个部分,每个部分放到不同的brick中,好处是多台主机能并发读,估计能快些,具体快多少没有测试过;坏处也是很明显,只要有一台机器出现问题,文件就没办法还原了,所以风险蛮大的。以上三种方式还可以组合使用,采取各种模式的精华,怎么能弄好,就看你的想象力有多大了:-D, 我们项目中使用的那种方式还没调查,明天查查。待续。。。
参考文章: http://my.oschina.net/hncscwc/blog/210072