前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openstack nova-compute在不同的hypervisors上使用不同的存储后端

openstack nova-compute在不同的hypervisors上使用不同的存储后端

作者头像
tanmx
发布2018-07-17 14:32:27
2.2K0
发布2018-07-17 14:32:27
举报

实验环境

主机名

IP

controller1

192.168.2.240

compute1

192.168.2.242

compute2

192.168.2.243

compute3

192.168.2.248

compute4

192.168.2.249

在不同的计算节点使用不同的存储后端

image
image

计算节点配置

1. Scheduler

为了使nova的调度程序支持下面的过滤算法,需要修改使之支持 AggregateInstanceExtraSpecsFilter ,编辑控制节点的 /etc/nova/nova.conf 文件加入修改以下选项,然后重启nova-scheduler服务

复制

代码语言:javascript
复制
# vim /etc/nova/nova.conf
scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter

# systemctl restart openstack-nova-scheduler.service

2. 本地存储配置

nova默认支持,无需配置。为了支持迁移可以配置共享存储(NFS等)

3. ceph存储配置

编辑计算节点的 /etc/nova/nova.conf 文件加入修改以下选项,然后重启nova-compute服务(这里没有详细写,例如导入secret-uuid等操作请自行添加)

复制

代码语言:javascript
复制
# 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_DEST

# systemctl restart openstack-nova-compute.service

openstack配置

创建主机集合,包含ceph compute nodes 和 local storage compute nodes

复制

代码语言:javascript
复制
# nova aggregate-create ephemeral-compute-storage
+----+---------------------------+-------------------+-------+----------+
| Id | Name                      | Availability Zone | Hosts | Metadata |
+----+---------------------------+-------------------+-------+----------+
| 8  | ephemeral-compute-storage | -                 |       |          |
+----+---------------------------+-------------------+-------+----------+

# nova aggregate-create ceph-compute-storage
+----+----------------------+-------------------+-------+----------+
| Id | Name                 | Availability Zone | Hosts | Metadata |
+----+----------------------+-------------------+-------+----------+
| 9  | ceph-compute-storage | -                 |       |          |
+----+----------------------+-------------------+-------+----------+

可以使用 nova hypervisor-list 命令来查看自己的hypervisor name

复制

代码语言:javascript
复制
# nova hypervisor-list
+----+---------------------+-------+---------+
| ID | Hypervisor hostname | State | Status  |
+----+---------------------+-------+---------+
| 1  | compute1            | up    | enabled |
| 2  | compute2            | up    | enabled |
| 4  | compute4            | up    | enabled |
| 7  | compute3            | up    | enabled |
+----+---------------------+-------+---------+

在本例中,使用以下分类 Local storage:compute1,compute2 Ceph storage: conpute3,compute4 添加主机到主机集合

复制

代码语言:javascript
复制
# nova aggregate-add-host ephemeral-compute-storage compute1
# nova aggregate-add-host ephemeral-compute-storage compute2
# nova aggregate-add-host ceph-compute-storage compute3
# nova aggregate-add-host ceph-compute-storage compute4

为主机集合创建新的metadata

复制

代码语言:javascript
复制
# nova aggregate-set-metadata ephemeral-compute-storage ephemeralcomputestorage=true
# nova aggregate-set-metadata ceph-compute-storage cephcomputestorage=true

为使用本地存储和ceph存储的虚拟机创建flavor

复制

代码语言:javascript
复制
# nova flavor-create m1.ephemeral-compute-storage 8 128 1 1
# nova flavor-create m1.ceph-compute-storage 9 128 1 1

为flavor绑定指定的属性

复制

代码语言:javascript
复制
# 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

结果验证

使用flavor m1.ceph-compute-storage 启动4台虚拟机,发现虚拟机磁盘文件全部在ceph的pool中

复制

代码语言:javascript
复制
# nova list
+--------------------------------------+--------+--------+------------+-------------+---------------------+
| ID                                   | Name   | Status | Task State | Power State | Networks            |
+--------------------------------------+--------+--------+------------+-------------+---------------------+
| 5d6bd85e-9b75-4035-876c-30e997ea0a98 | ceph-1 | BUILD  | spawning   | NOSTATE     | private=172.16.1.49 |
| aa666bd9-e370-4c53-8af3-f1bf7ba77900 | ceph-2 | BUILD  | spawning   | NOSTATE     | private=172.16.1.48 |
| 56d6a3a8-e6c4-4860-bd72-2e0aa0fa55f2 | ceph-3 | BUILD  | spawning   | NOSTATE     | private=172.16.1.47 |
| 2b9577d8-2448-4d8a-ba98-253b0f597b12 | ceph-4 | BUILD  | spawning   | NOSTATE     | private=172.16.1.50 |
+--------------------------------------+--------+--------+------------+-------------+---------------------+

[root@node1 ~]# rbd ls vms
2b9577d8-2448-4d8a-ba98-253b0f597b12_disk
56d6a3a8-e6c4-4860-bd72-2e0aa0fa55f2_disk
5d6bd85e-9b75-4035-876c-30e997ea0a98_disk
aa666bd9-e370-4c53-8af3-f1bf7ba77900_disk

删除所有虚拟机(便于验证),使用flavor m1.ephemeral-compute-storage 启动四台虚拟机,发现虚拟机磁盘文件分布于compute1 和 compute2 的本地存储中(没有配置NFS等共享存储)

复制

代码语言:javascript
复制
# nova list
+--------------------------------------+---------+--------+------------+-------------+---------------------+
| ID                                   | Name    | Status | Task State | Power State | Networks            |
+--------------------------------------+---------+--------+------------+-------------+---------------------+
| 1c1ce5f3-b5aa-47dd-806c-e2eba60b9eb0 | local-1 | ACTIVE | -          | Running     | private=172.16.1.51 |
| 5a3e4074-619e-423a-a649-e24771f9fbd1 | local-2 | ACTIVE | -          | Running     | private=172.16.1.54 |
| 5b838406-b9cf-4943-89f3-79866f8e6e19 | local-3 | ACTIVE | -          | Running     | private=172.16.1.52 |
| 30e7289f-bc80-4374-aabb-906897b8141c | local-4 | ACTIVE | -          | Running     | private=172.16.1.53 |
+--------------------------------------+---------+--------+------------+-------------+---------------------+

[root@compute1 ~]# ll /var/lib/nova/instances/
total 4
drwxr-xr-x 2 nova nova  69 Jul 27 10:40 1c1ce5f3-b5aa-47dd-806c-e2eba60b9eb0
drwxr-xr-x 2 nova nova  69 Jul 27 10:40 5b838406-b9cf-4943-89f3-79866f8e6e19
drwxr-xr-x 2 nova nova  53 Jul 25 16:01 _base
-rw-r--r-- 1 nova nova  31 Jul 27 10:33 compute_nodes
drwxr-xr-x 2 nova nova 143 Jul 25 16:01 locks
drwxr-xr-x 2 nova nova   6 Jul  6 15:51 snapshots

[root@compute2 ~]# ll /var/lib/nova/instances/
total 4
drwxr-xr-x 2 nova nova  69 Jul 27 10:40 30e7289f-bc80-4374-aabb-906897b8141c
drwxr-xr-x 2 nova nova  69 Jul 27 10:40 5a3e4074-619e-423a-a649-e24771f9fbd1
drwxr-xr-x 2 nova nova  53 Jul 25 16:02 _base
-rw-r--r-- 1 nova nova  62 Jul 27 10:33 compute_nodes
drwxr-xr-x 2 nova nova 143 Jul 25 16:01 locks

补充说明

在线迁移虚拟机的时候,不在同一个主机集合的主机仍然可以选择,但是无法迁移,需要增加只能在所在主机集合内迁移的功能


参考文章

OpenStack: use ephemeral and persistent root storage for different hypervisors

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境
  • 计算节点配置
    • 1. Scheduler
      • 2. 本地存储配置
        • 3. ceph存储配置
        • openstack配置
        • 结果验证
        • 补充说明
          • 参考文章
          相关产品与服务
          文件存储
          文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档