参考文档:

  1. Install-guide:https://docs.openstack.org/install-guide/
  2. OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html
  3. 理解Pacemaker:http://www.cnblogs.com/sammyliu/p/5025362.html

二十.Nova集成Ceph

1. 配置ceph.conf

# 如果需要从ceph rbd中启动虚拟机,必须将ceph配置为nova的临时后端;
# 推荐在计算节点的配置文件中启用rbd cache功能;
# 为了便于故障排查,配置admin socket参数,这样每个使用ceph rbd的虚拟机都有1个socket将有利于虚拟机性能分析与故障解决;
# 相关配置只涉及全部计算节点ceph.conf文件的[client]与[client.cinder]字段,以compute01节点为例
[root@compute01 ~]# vim /etc/ceph/ceph.conf
[client]
rbd cache = true
rbd cache writethrough until flush = true
admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok
log file = /var/log/qemu/qemu-guest-$pid.log
rbd concurrent management ops = 20 [client.cinder]
keyring = /etc/ceph/ceph.client.cinder.keyring # 创建ceph.conf文件中指定的socker与log相关的目录,并更改属主
[root@compute01 ~]# mkdir -p /var/run/ceph/guests/ /var/log/qemu/
[root@compute01 ~]# chown qemu:libvirt /var/run/ceph/guests/ /var/log/qemu/ 

2. 配置nova.conf

# 在全部计算节点配置nova后端使用ceph集群的vms池,以compute01节点为例
[root@compute01 ~]# vim /etc/nova/nova.conf
[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
# uuid前后一致
rbd_secret_uuid = 10744136-583f-4a9c-ae30-9bfb3515526b
disk_cachemodes="network=writeback"
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
# 禁用文件注入
inject_password = false
inject_key = false
inject_partition = -2
# 虚拟机临时root磁盘discard功能,”unmap”参数在scsi接口类型磁盘释放后可立即释放空间
hw_disk_discard = unmap
# 原有配置
virt_type=kvm # 变更配置文件,重启计算服务
[root@compute01 ~]# systemctl restart libvirtd.service openstack-nova-compute.service
[root@compute01 ~]# systemctl status libvirtd.service openstack-nova-compute.service 

3. 配置live-migration

1)修改/etc/libvirt/libvirtd.conf

# 在全部计算节点操作,以compute01节点为例;
# 以下给出libvirtd.conf文件的修改处所在的行num
[root@compute01 ~]# egrep -vn "^$|^#" /etc/libvirt/libvirtd.conf
# 取消以下三行的注释
:listen_tls = 0
:listen_tcp = 1
:tcp_port = ""
# 取消注释,并修改监听端口
:listen_addr = "172.30.200.41"
# 取消注释,同时取消认证
:auth_tcp = "none" 

2)修改/etc/sysconfig/libvirtd

# 在全部计算节点操作,以compute01节点为例;
# 以下给出libvirtd文件的修改处所在的行num
[root@compute01 ~]# egrep -vn "^$|^#" /etc/sysconfig/libvirtd
# 取消注释
:LIBVIRTD_ARGS="--listen" 

3)设置iptables

# live-migration时,源计算节点主动连接目的计算节点tcp16509端口,可以使用”virsh -c qemu+tcp://{node_ip or node_name}/system”连接目的计算节点测试;
# 迁移前后,在源目计算节点上的被迁移instance使用tcp49152~49161端口做临时通信;
# 因虚拟机已经启用iptables相关规则,此时切忌随意重启iptables服务,尽量使用插入的方式添加规则;
# 同时以修改配置文件的方式写入相关规则,切忌使用”iptables saved”命令;
# 在全部计算节点操作,以compute01节点为例
[root@compute01 ~]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 16509 -j ACCEPT
[root@compute01 ~]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 49152:49161 -j ACCEPT 

4)重启服务

# libvirtd与nova-compute服务都需要重启
[root@compute01 ~]# systemctl restart libvirtd.service openstack-nova-compute.service # 查看服务
[root@compute01 ~]# netstat -tunlp | grep 16509 

4. 验证

如果使用ceph提供的volume做启动盘,即虚拟机运行镜像文件存放在共享存储上,此时可以方便地进行live-migration。

1)创建基于ceph存储的bootable存储卷

# 当nova从rbd启动instance时,镜像格式必须是raw格式,否则虚拟机在启动时glance-api与cinder均会报错;
# 首先进行格式转换,将*.img文件转换为*.raw文件
[root@controller01 ~]# qemu-img convert -f qcow2 -O raw ~/cirros-0.3.5-x86_64-disk.img ~/cirros-0.3.5-x86_64-disk.raw # 生成raw格式镜像
[root@controller01 ~]# openstack image create "cirros-raw" \
--file ~/cirros-0.3.5-x86_64-disk.raw \
--disk-format raw --container-format bare \
--public 

# 使用新镜像创建bootable卷
[root@controller01 ~]# cinder create --image-id a95cee9a-4493-42ae-98e9-e5d34e4dee7a --volume-type ceph --name ceph-bootable1 2 # 查看新创建的bootable卷
[root@controller01 ~]# cinder list 

# 从基于ceph后端的volumes新建实例;
# “--boot-volume”指定具有”bootable”属性的卷,启动后,虚拟机运行在volumes卷
[root@controller01 ~]# nova boot --flavor m1.tiny \
--boot-volume db0f83c0-14f7-4548-8807-4b1f593630a4 \
--nic net-id=91e78b9c-cfcd-4af2-851a-a27839edf571 \
--security-group default \
cirros-cephvolumes-instance1 

2)从ceph rbd启动虚拟机

# --nic:net-id指网络id,非subnet-id;
# 最后“cirros-cephrbd-instance1”为instance名
[root@controller01 ~]# nova boot --flavor m1.tiny --image cirros-raw --nic net-id=91e78b9c-cfcd-4af2-851a-a27839edf571 --security-group default cirros-cephrbd-instance1 # 查询生成的instance
[root@controller01 ~]# nova list 

# 查看生成的instance的详细信息
[root@controller01 ~]# nova show 7648251c-62a1-4f98-ba3f-e5f30f5804b4 

# 验证是否从ceph rbd启动
[root@controller01 ~]# rbd ls vms 

3)对rbd启动的虚拟机进行live-migration

# 使用”nova show 7648251c-62a1-4f98-ba3f-e5f30f5804b4”得知从rbd启动的instance在迁移前位于compute02节点;
# 或使用”nova hypervisor-servers compute02”进行验证;
[root@controller01 ~]# nova live-migration cirros-cephrbd-instance1 compute01 # 迁移过程中可查看状态
[root@controller01 ~]# nova list 

# 迁移完成后,查看instacn所在节点;
# 或使用”nova show 7648251c-62a1-4f98-ba3f-e5f30f5804b4”命令查看”hypervisor_hostname”
[root@controller01 ~]# nova hypervisor-servers compute02
[root@controller01 ~]# nova hypervisor-servers compute01 

高可用OpenStack(Queen版)集群-16.Nova集成Ceph的更多相关文章

  1. Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群

    大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(H ...

  2. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

  3. 16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程

    16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud ...

  4. 分布式架构高可用架构篇_03-redis3集群的安装高可用测试

    参考文档 Redis 官方集群指南:http://redis.io/topics/cluster-tutorial Redis 官方集群规范:http://redis.io/topics/cluste ...

  5. 分布式架构高可用架构篇_01_zookeeper集群的安装、配置、高可用测试

    参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...

  6. Linux 高可用(HA)集群之keepalived详解

    http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用 ...

  7. haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7

    架构如上,但是其实keepalived.haproxy.Mycat都可以多台(比如keepalived.haproxy.Mycat各3台,3台keepalived抢占vip,然后抢到vip的hapro ...

  8. 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)

    这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...

  9. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

随机推荐

  1. 1068. [SCOI2007]压缩【区间DP】

    Description 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息.压缩后的字符串除了小 写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上 ...

  2. P2245 星际导航

    题目描述 sideman 做好了回到 Gliese星球的硬件准备,但是 sideman 的导航系统还没有完全设计好.为了方便起见,我们可以认为宇宙是一张有 N 个顶点和 M 条边的带权无向图,顶点表示 ...

  3. 使用nginx替换Ingress

    总感觉k8s Ingress 不可控, 所以使用nginx 替换Ingress,还是比较简单的. apiVersion: extensions/v1beta1 kind: DaemonSet meta ...

  4. ethers.js-6-Low-Level API

    Low-Level API These are advanced, low-level API features that should, for most people not be necessa ...

  5. leetcode 141. Linked List Cycle 、 142. Linked List Cycle II

    判断链表有环,环的入口结点,环的长度 1.判断有环: 快慢指针,一个移动一次,一个移动两次 2.环的入口结点: 相遇的结点不一定是入口节点,所以y表示入口节点到相遇节点的距离 n是环的个数 w + n ...

  6. 20165302 2017-2018-2《Java程序设计》课程总结

    20165302 2017-2018-2<Java程序设计>课程总结 每周作业汇总 预备作业1 对师生关系的看法 预备作业2 C语言基础调查 预备作业3 安装虚拟机,初步学习虚拟机及常用命 ...

  7. 针对IE及其它的css hack

    现在一些针对针对政府的oa项目还要去解决兼容IE6 7 8,这对前端开发来说简直是灾难,在要使用一些css3,或者H5的地方,我们就要慎重了,在使用新特性的同时要兼顾老的浏览器的,做到优雅降级,或者针 ...

  8. Java反射学习二

    利用反射进行对象拷贝的例子 如下例程ReflectTester类进一步演示了Reflection API的基本使用方法. ReflectTester类有一个copy(Object object)方法, ...

  9. JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI)

    写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了.本以为网上的微信开发教程 ...

  10. Centos7 yum安装Mysql5.7

    1.下载mysql安装源 curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 2.安装yum源 ...