說明:
主參考:https://www.sunmite.com/openstack/use-local-storage-for-different-hypervisors.html
在控制節點上執行
1.配置nova調度程序支持AggregateInstanceExtraSpecsFilter過濾算法
openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter
systemctl restart openstack-nova-scheduler.service
2.創建兩個主機集合,包含ceph compute nodes 和 local storage compute nodes
nova aggregate-create ephemeral-compute-storage
nova aggregate-create ceph-compute-storage
3.查看計算節點的名稱
source ~/admin-openrc
nova hypervisor-list
得到四臺主機:
compute-1.ideal.yfb0801800.islab.net.cn
compute-2.ideal.yfb0801800.islab.net.cn
compute-3.ideal.yfb0801800.islab.net.cn
compute-4.ideal.yfb0801800.islab.net.cn
4.分別添加主機到不同的主機集合(一臺主機只能添加到一個主機集合中)
nova aggregate-add-host ephemeral-compute-storage compute-1.ideal.yfb0801800.islab.net.cn
nova aggregate-add-host ephemeral-compute-storage compute-2.ideal.yfb0801800.islab.net.cn
nova aggregate-add-host ephemeral-compute-storage compute-3.ideal.yfb0801800.islab.net.cn
nova aggregate-add-host ceph-compute-storage compute-4.ideal.yfb0801800.islab.net.cn
5.爲主機集合創建新的metadata
nova aggregate-set-metadata ephemeral-compute-storage ephemeralcomputestorage=true
nova aggregate-set-metadata ceph-compute-storage cephcomputestorage=true
6.爲使用本地存儲和ceph存儲的虛擬機創建flavor
openstack flavor create --vcpus 2 --ram 4096 --disk 40 m1.ephemeral-compute-storage
openstack flavor create --vcpus 2 --ram 4096 --disk 40 m1.ceph-compute-storage
7.爲flavor綁定指定的屬性
nova flavor-key m1.ceph-compute-storage set aggregate_instance_extra_specs:cephcomputestorage=true
nova flavor-key m1.ephemeral-compute-storage set aggregate_instance_extra_specs:ephemeralcomputestorage=true
在計算節點上執行
1.本地存儲配置
nova默認支持,無需配置。爲了支持遷移可以配置共享存儲(NFS等)
如果剛安裝了cinder還沒有配置nova的話,此時創建虛擬機時一定要如圖所示那樣,選擇否。如果不選擇否的話,虛擬機無法創建出來,因爲cinder創建了卷,而nova卻無法將其附加在libvirt上。
提供一下,一些可能有用的配置:
#單位是M
openstack-config --set /etc/nova/nova.conf libvirt file_backed_memory 1048576
openstack-config --set /etc/nova/nova.conf libvirt disk_cachemodes "file=directsync,block=none"
systemctl restart openstack-nova-compute && systemctl status openstack-nova-compute
2.ceph存儲配置
編輯計算節點的 /etc/nova/nova.conf 文件加入修改以下選項,然後重啓nova-compute服務(這裏沒有詳細寫,例如導入secret-uuid等操作請自行添加)
vim /etc/nova/nova.conf
[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
rbd_secret_uuid =20c3fd98-2bab-457a-b1e2-12e50dc6c98e
disk_cachemodes="network=writeback"
inject_partition=-2
inject_key=False
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DESTsystemctl restart openstack-nova-compute.service