高可用OpenStack(Queen版)集群-16.Nova集成Ceph

参考文档:

  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
  4. Ceph: http://docs.ceph.com/docs/master/start/intro/

二十.Nova集成Ceph

1. 配置ceph.conf

# 如果需要从ceph rbd中启动虚拟机,必须将ceph配置为nova的临时后端;
# 推荐在计算节点的配置文件中启用rbd cache功能;
# 为了便于故障排查,配置admin socket参数,这样每个使用ceph rbd的虚拟机都有1个socket将有利于虚拟机性能分析与故障解决;
# 相关配置只涉及全部计算节点ceph.conf文件的[client]与[client.cinder]字段,以compute01节点为例
[[email protected] ~]# 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相关的目录,并更改属主
[[email protected] ~]# mkdir -p /var/run/ceph/guests/ /var/log/qemu/
[[email protected] ~]# chown qemu:libvirt /var/run/ceph/guests/ /var/log/qemu/ 

2. 配置nova.conf

# 在全部计算节点配置nova后端使用ceph集群的vms池,以compute01节点为例
[[email protected] ~]# 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

# 变更配置文件,重启计算服务
[[email protected] ~]# systemctl restart libvirtd.service openstack-nova-compute.service
[[email protected] ~]# systemctl status libvirtd.service openstack-nova-compute.service 

3. 配置live-migration

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

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

2)修改/etc/sysconfig/libvirtd

# 在全部计算节点操作,以compute01节点为例;
# 以下给出libvirtd文件的修改处所在的行num
[[email protected] ~]# egrep -vn "^$|^#" /etc/sysconfig/libvirtd
# 取消注释
9: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节点为例
[[email protected] ~]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 16509 -j ACCEPT
[[email protected] ~]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 49152:49161 -j ACCEPT 

4)重启服务

# libvirtd与nova-compute服务都需要重启
[[email protected] ~]# systemctl restart libvirtd.service openstack-nova-compute.service

# 查看服务
[[email protected] ~]# netstat -tunlp | grep 16509 

4. 验证

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

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

# 当nova从rbd启动instance时,镜像格式必须是raw格式,否则虚拟机在启动时glance-api与cinder均会报错;
# 首先进行格式转换,将*.img文件转换为*.raw文件
[[email protected] ~]# qemu-img convert -f qcow2 -O raw ~/cirros-0.3.5-x86_64-disk.img ~/cirros-0.3.5-x86_64-disk.raw

# 生成raw格式镜像
[[email protected] ~]# openstack image create "cirros-raw" \
--file ~/cirros-0.3.5-x86_64-disk.raw --disk-format raw --container-format bare --public 

# 使用新镜像创建bootable卷
[[email protected] ~]# cinder create --image-id a95cee9a-4493-42ae-98e9-e5d34e4dee7a --volume-type ceph --name ceph-bootable1 2

# 查看新创建的bootable卷
[[email protected] ~]# cinder list 

# 从基于ceph后端的volumes新建实例;
# “--boot-volume”指定具有”bootable”属性的卷,启动后,虚拟机运行在volumes卷
[[email protected] ~]# 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名
[[email protected] ~]# nova boot --flavor m1.tiny --image cirros-raw --nic net-id=91e78b9c-cfcd-4af2-851a-a27839edf571 --security-group default cirros-cephrbd-instance1

# 查询生成的instance
[[email protected] ~]# nova list 

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

# 验证是否从ceph rbd启动
[[email protected] ~]# rbd ls vms 

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

# 使用”nova show 7648251c-62a1-4f98-ba3f-e5f30f5804b4”得知从rbd启动的instance在迁移前位于compute02节点;
# 或使用”nova hypervisor-servers compute02”进行验证;
[[email protected] ~]# nova live-migration cirros-cephrbd-instance1 compute01

# 迁移过程中可查看状态
[[email protected] ~]# nova list 

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

原文地址:https://www.cnblogs.com/netonline/p/9409484.html

时间: 2024-08-07 10:37:45

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

haproxy+keepalived实现高可用负载均衡web集群

haproxy+keepalived实现高可用负载均衡web集群 负载均衡集群的概念 负载均衡是设计分布式系统架构必须要考虑的因素之一,它指的是通过调度分发的方式尽可能将"请求"."访问"的压力负载平均分摊到集群中的各个节点,避免有些节点负载太高导致访问延迟,而有些节点负载很小导致资源浪费.这样,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间的动态分配,以实现负载均衡,从而为企业提供更高性能,更加稳定的系统架构解决方案. 高可用集群的概念

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

大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(HA)集群基本概念详解 http://www.linuxidc.com/Linux/2013-08/88522.htm Linux 高可用(HA)集群之Heartbeat详解 http://www.linuxidc.com/Linux/2013-08/88521.htm 一.前言      前几篇博文

Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群

一:试验目的 利用heartbeat心跳机制haresource实现高可用(HA)mysql数据库的搭建. 二:试验拓扑图 三:安装前的环境准备 规划IP为192.168.1.14为node1;IP为192.168.1.2为node2 1)修改各主机名称 修改node1主机名称  vim /etc/sysconfig/network   NETWORKING=yes   HOSTNAME=node1 #修改主机名称为node1  vim /etc/hosts     192.168.1.2 no

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5) 实验环境:iptables selinux关闭,三台主机做好解析 实验主机IP: 172.25.0.251 172.25.0.2 172.25.0.3 高可用集群包括RHCS,pacemaker+lvs,heartbeat,keepalievd. 在做实验前,先了解RHCS套件,6以下才有,7就取消了. 一些服务进程的含义如下: Luci/ricci>>web方式的集群管理(配置)工具: Ccs>>集群配置服务,(例如

keepalived+nginx实现高可用and负载均衡集群

keepalived+nginx实现高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(work

keepalived+nginx搭建高可用and负载均衡集群

keepalived+nginx搭建高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worke

LVS+keeplived+nginx+tomcat高可用、高性能jsp集群

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/557749 #!/bin/bash # BY kerryhu # MAIL:[email protected] # BLOG:http://kerry.blog.51cto.com # Please manual operation yum of before Operation..... #yum -y install

Nginx+Keepalived搭建高可用负载平衡WEB 集群

Nginx+Keepalived搭建高可用负载平衡WEB 集群 1.1环境规划: Nginx_master:192.168.5.129 Nginx_backup:192.168.5.131 Tomcat:192.168.5.132 端口:8080,9080 操作系统:CentOS6.5 x86_64 内核版本:2.6.32-696.el6.x86_64 Nginx版本:nginx/1.12.0 nginx-1.12.0 Keepalived版本:Keepalived v1.2.13 前端双Ngi

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

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的