第九章 nova组件安装3
前提:需要物理机器支持Intel VT or AMD-V
1、在计算节点安装kvm等虚拟化组件
- apt -y install qemu-kvm libvirt-bin virtinst bridge-utils libosinfo-bin libguestfs-tools virt-top
- virsh net-list # 查看,存在default
- virsh net-destroy default # 移除virbr0 bridge,终止dnsmasq 进程, 移除iptables rules
- #virsh net-undefine default
- virsh net-autostart --network default --disable # 阻止重启后网络自动启动
- systemctl restart libvirtd # 记得重启服务
- brctl show # 确认是否删除
- virsh net-list # 确认是否删除,选一个查看的方式
2、在计算节点开启vhost-net
- modprobe vhost_net
- lsmod | grep vhost
- echo vhost_net >> /etc/modules
3、在计算节点安装nova组件
- apt -y install nova-compute nova-compute-kvm
- mv /etc/nova/nova.conf /etc/nova/nova.conf.org # 备份官方的
- # 配置文件
- vi /etc/nova/nova.conf
- # create new
- [DEFAULT]
- # allow resize to same host
- allow_resize_to_same_host = True
- # block allocate time
- block_device_allocate_retries = 600
- block_device_allocate_retries_interval = 6
- max_concurrent_live_migrations = 10
- use_neutron = True
- linuxnet_interface_driver = nova.network.linux_net.LinuxBridgeInterfaceDriver # LinuxBridge桥接
- firewall_driver = nova.virt.firewall.NoopFirewallDriver
- vif_plugging_is_fatal = True
- vif_plugging_timeout = 300
- debug = True # 打开调试功能
- # define own IP address
- my_ip = 192.168.222.27 # API IP
- state_path = /var/lib/nova
- enabled_apis = osapi_compute,metadata
- log_dir = /var/log/nova
- # RabbitMQ connection info
- transport_url = rabbit://openstack:password@192.168.222.29
- [api]
- auth_strategy = keystone
- # Glance connection info
- [glance]
- api_servers = http://192.168.220.29:9292 # 这里配置存储网的IP,也可以API网
- # enable VNC
- [vnc]
- enabled = True
- server_listen = 0.0.0.0
- server_proxyclient_address = $my_ip
- novncproxy_base_url = http://192.168.222.29:6080/vnc_auto.html
- [oslo_concurrency]
- lock_path = $state_path/tmp
- # Keystone auth info
- [keystone_authtoken]
- www_authenticate_uri = http://192.168.222.29:5000
- auth_url = http://192.168.222.29:5000
- memcached_servers = 192.168.222.29:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = nova
- password = servicepassword
- [placement]
- auth_url = http://192.168.222.29:5000
- os_region_name = RegionOne
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = placement
- password = servicepassword
- [wsgi]
- api_paste_config = /etc/nova/api-paste.ini
- [neutron]
- auth_url = http://192.168.222.29:5000
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- region_name = RegionOne
- project_name = service
- username = neutron
- password = servicepassword
- service_metadata_proxy = True
- metadata_proxy_shared_secret = metadata_secret
- [cinder]
- os_region_name = RegionOne
- [libvirt]
- virt_type = kvm
- # vmotion function,所有计算节点之间 创建nova无密码登录账号
- live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_TUNNELLED
- # 修改文件权限
- chmod 640 /etc/nova/nova.conf
- chgrp nova /etc/nova/nova.conf
- # 重启服务
- systemctl restart nova-compute # 服务已经开机自启动
- # 创建nova账号免密码登录
- cat /etc/passwd|grep nova
- usermod -s /bin/bash nova
- cat /etc/passwd|grep nova # 确认
- passwd nova # 输入admin123,作为密码
- # 以上动作创建账号行为,现在各个节点上进行完成后,再继续
- su - nova
- ssh-keygen -t rsa -P \'\' -f ~/.ssh/id_dsa >/dev/null 2>&1
- ssh-copy-id -i .ssh/id_dsa.pub nova@192.168.220.27 # 有几个节点就传几个节点,相互传送
- ssh 192.168.220.27 # 验证所有节点,无需密码登录(这个IP是为了在存储网上迁移)
- # 配置文件
- vi /etc/default/libvirtd
- # 修改如下
- libvirtd_opts="-l"
- # 配置文件
- vi /etc/libvirt/libvirtd.conf
- # 修改如下
- listen_tls = 0
- listen_tcp = 1
- tcp_port = "16509"
- listen_addr = "192.168.220.28" # 写入每个计算节点存储网的IP地址
- auth_tcp = "none"
- host_uuid = "75f51c73-fa22-4401-906e-c42b05f966d4" # 写入每个计算节点uuid,用uuidgen生成
- systemctl restart libvirtd # 服务已经开机自启动
4、在控制节点发现计算节点(这里需要验证)
- # 发现计算节点,同步数据库,python的orm对象关系映射,需要初始化来生成数据库表结构
- su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
- # 查看验证
- openstack compute service list