本节书摘来自华章出版社《OpenStack实战指南》一 书中的第2章,第2.2节,作者:黄 凯 毛伟杰 顾骏杰 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
计算节点的任务就是负责运行虚拟机,对于计算节点操作系统的安装,默认把/目录分区尽量分配充足,至少50GB。这里使用KVM。此外,这个架构中使用的网络方式是Neutron,使用的Neutron的plugin是Open vSwitch,因此,还需要安装Neutron的Open vSwitch的agent,以及Open vSwitch本身。需要使用或安装的组件:KVM、libvirtnova-computeneutron-plugin-openvswitch-agentOpen vSwitch为了保证和controller节点的时间一致,需安装NTP并同步时间。1.?安装nova-compute首先,回到工作目录,命令如下:
$ cd下载devstack脚本和Nova的源代码,命令如下:
$ git clone https://github.com/openstack-dev/devstack $ git clone https://github.com/openstack/nova安装nova-compute所需要的依赖软件包,代码如下:
$ cd devstack/files/apts $ for i in ` cut -f1 -d" " n-cpu`; do sudo apt-get install -y $i; done安装nova-compute组件,代码如下:
$ cd ~/nova $ git checkout stable/havana $ sudo python setup.py develop因为底层使用KVM虚拟化技术,所以必须安装KVM和libvirt库,命令如下:
$ sudo apt-get install -y kvm libvirt-bin python-libvirt2.?配置Nova相关文件配置示例如下:
$ cd ~/nova $ sudo mkdir /etc/nova $ sudo chown openstack:openstack /etc/nova $ cp etc/nova/api-paste.ini /etc/nova/ $ cp etc/nova/nova.conf.sample /etc/nova/nova.conf $ mkdir -m 755 /etc/nova/rootwrap.d $ cp etc/nova/rootwrap.d/*.filters /etc/nova/rootwrap.d $ sudo chown -R root:root /etc/nova/rootwrap.d $ sudo chmod 644 /etc/nova/rootwrap.d/* $ cp etc/nova/rootwrap.conf /etc/nova $ sed -e "s:^filters_path=.*$:filters_path=/etc/nova/rootwrap.d:" -i /etc/nova/ rootwrap.conf $ sudo chown root:root /etc/nova/rootwrap.conf $ sudo chmod 0644 /etc/nova/rootwrap.conf $ sudo vi /etc/sudoers.d/nova-rootwrap把第一行内容添加到nova-rootwrap文件中,并执行余下命令。
openstack ALL=(root) NOPASSWD: /usr/local/bin/nova-rootwrap /etc/nova/rootwrap.conf * $ sudo chmod 0440 /etc/sudoers.d/nova-rootwrap需要手动建立存放虚拟机文件的实际目录instances,代码如下:
$ sudo mkdir -p /data/nova/instances $ sudo chown -R opsntack:openstack /data/nova $ sudo mkdir /var/log/nova $ sudo chown -R openstack:openstack /var/log/nova3.?配置nova-compute配置示例如下:
$ sudo modprobe nbd || true/ $ sudo modprobe kvm || true/ $ kvm-ok $ sudo vi /etc/libvirt/qemu.conf修改qemu.conf文件中以下部分内容:
cgroup_device_acl = [ "/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet","/dev/net/tun", ] $ sudo usermod -G libvirtd openstack然后修改配置文件,可参照2.1节相关内容,其代码如下。注意,在这个例子中,nova.conf中的state_path的目录应该设置成/data/nova。在一切配置完成之后,启动nova-compute服务。
$ cd ~/nova $ tmux -c "sg libvirtd bin/nova-compute --config-file=/etc/nova/nova.conf"4.?安装Neutron的Open vSwitch plugin计算节点需要使用Open vSwitch和Neutron的Open vSwitch plugin。在二进制包安装过程中,Open vSwitch在安装Neutron时候被依赖安装了,而在这里我们必须手动安装Open vSwitch,其代码如下:
$ sudo apt-get install -y openvswitch-switch openvswitch-datapath-dkmsNeutron的Open vSwitch plugin的源代码包含在Neutron中,参照控制节点安装neutron-server部分,建立相应的目录,把Open vSwitch的 plugin复制出来,然后编辑配置文件即可。完成后,运行neutron-openvswitch-plugin的命令如下:
$ cd ~/neutron $ tmux -c "python neutron-openvswitch-agent --config-file /etc/neutron/neutron. conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini"