昨天又装了一遍 OpenStack。码农这项工作就如同人生,永远有你想不到的意外在等着你,时而是惊喜时而是悲伤。在装的过程中倒是很顺利,只是在安装完成之后碰到了两个之前没有碰到的问题,这里记录下来以供需要之人查阅。
由于管理网络需要访问互联网且虚拟机同样需要访问互联网,所以管理网络和 external 网络考虑能不能放到同一个网段去。我本身对网络这块不是很熟悉,之前我考虑同一个服务器不同网卡如果配置同一个网段势必会造成只有一个网卡能起作用,因为数据只可能从一个网口出去。网上也查阅了相关资料,都说理论上可以,但是这种场合最好只出现在负载均衡等情况下,想来是有道理的。
但是对于我这个爱折腾的人来说,什么东西都要亲自试过了我才能确定,而且我考虑虚拟机访问外部网络网卡是指定好的,这样应当不会造成冲突,于是在安装好之后就开始实验。
网络配置情况是这样的:管理网络采用外部网络 192.168.10.0/24,虚拟机网络无需多言,外部网络也采用 192.168.10.0/24 网段,即从交换机直接接了两根线到主节点上。
安装好 OpenStack 后修改 / etc/neutron/plugins/ml2/ml2_conf.ini 文件,将外部网络配置到主节点的第三块网卡(具体参考 OpenStack(企业私有云)万里长征第四步——DevStack 整体安装规划及使用)。而后在 OpenStack 中采用上述文章中的方式创建外部网络,结果居然成功了。
说明将管理网络和外部网络配置成同一个网段的方案是可行的,但是此处需要注意的是在创建 external 网络的时候需要设置一下地址池,选择一个网段,防止 IP 冲突。
新的服务器配置比较高,有两块固态硬盘,剩下的为机械硬盘,这样就考虑两块固态硬盘做 RAID 0 用于安装操作系统,其余硬盘做 RAID 5 用于存放数据(但是由于固态硬盘还没有完全到货,有几台全部为机械硬盘,即只做了一个 RAID)。在安装前我心里就一惊,之前我没有碰到过这种方案,因为 OpenStack 势必是把虚拟机、镜像等数据存放在操作系统目录中的,这样几百 G 的固态硬盘显然是不可能够用的。
安装完之后,果然如我所设想,在创建虚拟机的时候由于 OpenStack 的策略,使得虚拟机全部部署到了不包含固态硬盘的服务器上,这是因为 NOVA 的 filter Scheduler,在创建虚拟机的时候会根据各种条件对计算节点进行打分,而后根据权重算出最有节点去部署,当然包含固态硬盘的服务器由于硬盘太小,所以分数太低而无法部署虚拟机。
码农的职责就是无论碰到的是惊喜或者忧伤都要迎难而上,既然这样那就尝试着能不能把包含固态硬盘服务器的虚拟机存储位置改到机械硬盘上。
于是在简单的搜索之后开始尝试。首先查到了虚拟即存放位置存储在 / etc/nova/nova.conf 文件的下面两行信息中。
- instances_path = /opt/stack/data/nova/instances
- state_path = /opt/stack/data/nova
这就容易了,我只需要将机械硬盘创建分区、格式化,而后挂载到一个新目录,并修改上述虚拟机存储位置就好了嘛。
- sudo fdisk - lu
通过此命令可以看到服务器中包含哪些硬盘,以及是否创建分区等。
- sudo fdisk / dev / sdb
查看第一步中需要分区的硬盘,执行上述命令,将 / dev/sdb 替换为你要分区的硬盘。
- sudo mkfs - t ext4 / dev / sdb
同样将 / dev/sdb 替换为你要分区的硬盘,上述命令将分好区的硬盘格式化为 ext4 格式。
- sudo mount - t ext4 / dev / sdb / devdata
同样将 / dev/sdb 替换为你要分区的硬盘,并将 / devdata 替换为想要挂载的地方并创建该目录,此命令将 /dev/sdb 分区挂载到目录 /devdata。
在终端窗口中输入如下命令查看挂载情况:
- sudo df - lh
1、首先查看需要自动挂载硬盘的 UUID
- ls - all / dev / disk / by - uuid
2、在文件 /etc/fstab 中加入如下配置:
- # /devdata was on /dev/sdb
- UUID=37eaa526-5d96-4237-8468-603df5216ce9 /devdata ext4 defaults 0 3
将上述 UUID 后的值替换为 1 中查看到的硬盘对应的 UUID 号,将 / devdata 替换为你的挂载目录。
我将机械硬盘直接挂载到了 / data 目录,满心欢喜的以为将存储位置修改成 / data 之后即可搞定,然而一切高兴的太早,无论我怎么操作(又是将原始目录中的内容 copy 到 / data 下,又是修改 / data 的所属用户)在 OpenStack 中始终无法查看虚拟机,甚至整个 OpenStack 几乎崩溃。
这让我很是着急,难道白辛苦一天又要从头开始吗,于是机智如我怎能不立即想到将机械硬盘直接挂载到 / opt/stack/data/nova 下而不去修改 nova.conf 配置,这样应该就能直接解决问题了吧,说干就干。在简单折腾之后直接成功了。So Easy。
当然此步需要注意两点:
所以最好是先将 / opt/stack/data/nova 中的内容拷至其他目录进行备份,待挂载后再粘贴回来。当然最好的方式是先进行挂载操作,再安装 OpenStack。
以上便是此次部署中碰到并解决的两个实际问题,此次安装整体较顺利,相对于去年安装 Cloudera 的过程,不知道要好了多少倍。大概经历了一年之后,各方面都变化不少吧。
来源: http://www.cnblogs.com/shoufengwei/p/7399920.html