本节书摘来自华章出版社《OpenStack实战指南》一 书中的第2章,第2.2节,作者:黄 凯 毛伟杰 顾骏杰 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.2.2 计算节点的安装
计算节点的任务就是负责运行虚拟机,对于计算节点操作系统的安装,默认把/目录分区尽量分配充足,至少50GB。这里使用KVM。此外,这个架构中使用的网络方式是Neutron,使用的Neutron的plugin是Open vSwitch,因此,还需要安装Neutron的Open vSwitch的agent,以及Open vSwitch本身。
需要使用或安装的组件:
KVM、libvirt
nova-compute
neutron-plugin-openvswitch-agent
Open 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-libvirt
2.?配置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/nova
3.?配置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-dkms
Neutron的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"