Ceph与OpenStack整合(仅为云主机提供云盘功能)

1. Ceph与OpenStack整合(仅为云主机提供云盘功能)

  1. ceph

    1. ceph osd pool create volumes 128 128
    2. ceph auth get-or-create client.cinder mon ‘allow r‘ osd ‘allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images‘ -o /etc/ceph/ceph.client.cinder.keyring
  2. 部署一个cinder-volume节点。部署过程中可能报错(部署过程请参考官方文档)
    报错内容:
    2016-05-25 08:49:54.917 24148 TRACE cinder RuntimeError: Could not bind to 0.0.0.0:8776 after trying for 30 seconds
    问题分析:
    RuntimeError->访问违例,这种情况是由于0.0.0.0:8776端口冲突的问题,如果你讲cinder-api和cinder-schduler,cinder-volume部署在同一台机器
    就会有这个端口冲突的问题,我遇到的情况是haproxy的端口和cinder-api的端口都是8776
    解决方法:
    vim /etc/cinder/cinder.conf
    新增如下两行:
    osapi_volume_listen=172.16.209.17
                                          osapi_volume_listen_port=8776
  3. 在ceph的monitor节点创建pool,创建对这个pool有rwx权限的账号,导出该账号的秘钥文件拷贝给cinder-volume节点和需要使用该pool的计算节点,只发送配置文件给cinder-volume节点(计算节点要想获取ceph集群信息由cinder-volume节点告诉他,所以不需要配置文件)
    1. 创建存储池volume-pool,请记池的名字,cinder-volume和compute节点都需要在配置文件中指定这个池
    2. 创建访问volume-pool这个池的账号,注意:下面我标红的部分 ,账号名字必须是client. 开头(client.cinder其中cinder就是你的账号名,client代表你的角色是客户端,),导出的账号秘钥文件命名规则为ceph.client.账号名.keyring(这个文件必须放到ceph客户端的/etc/ceph目录下)
    3. 将ceph集群的配置文件和上一步创建的秘钥文件一并发送给客户端(cinder-volume节点,compute节点),注意:一定要将这两个文件拷贝到ceph客户端的/etc/ceph目录下(cinder.conf中有很多缺省配置,寻找ceph配置文件的路径默认/et/ceph)
    4. scp -r /etc/ceph/ceph.conf  cinder-volume节点ip:/etc/ceph
    5. scp -r /etc/ceph/ceph.client.cinder.keyring cinder-volume节点ip:/et/ceph
    6. scp -r /etc/ceph/ceph.conf  compute节点ip:/etc/ceph
    7. scp -r /etc/ceph/ceph.client.cinder.keyring compute节点ip:/etc/ceph
  4. 配置cinder-volume节点
    1. yum install ceph-common -y
    2. 修改 /etc/cinder/cinder.conf:
      [DEFAULT]
      volume_driver = cinder.volume.drivers.rbd.RBDDriver
      storage_availability_zone=blockstrage03-ceph
      rbd_pool = volume-pool
      rbd_ceph_conf = /etc/ceph/ceph.conf
      rbd_flatten_volume_from_snapshot = false
      rbd_max_clone_depth = 5
      rbd_store_chunk_size = 4
      rados_connect_timeout = -1
      glance_api_version = 2
      rbd_user = cinder
    3. /etc/init.d/openstack-cinder-volume restart
    4. tail -f /var/log/cinder/volume.log 
      报错:Unable to update stats, RBDDriver -1.1.0  driver is uninitialized.
       问题分析:cinder-volume无法连接ceph集群导致驱动无法正常初始化,请看2->b->i和2->c 标红部分
      解决方法:参照2->b-i和2->c标红部分指示的命名规则重新命名你的文件,以及文件在客户端的存放路径,重启openstack-cinder-volume服务
  5. 配置compute节点,升级qemu-*包,重启libvirtd,制作秘钥文件导入libvirt
    1. [[email protected] ~]# rpm -qa |grep qemu
      qemu-kvm-tools-0.12.1.2-2.415.el6.3ceph.x86_64
      qemu-kvm-0.12.1.2-2.415.el6.3ceph.x86_64
      gpxe-roms-qemu-0.9.7-6.14.el6.noarch
      qemu-img-0.12.1.2-2.415.el6.3ceph.x86_64
      qemu-guest-agent-0.12.1.2-2.415.el6.3ceph.x86_64
    2. [[email protected] ~]# virsh version
      Compiled against library: libvirt 0.10.2
      Using library: libvirt 0.10.2
      Using API: QEMU 0.10.2
      Running hypervisor: QEMU 0.12.1
    3. [[email protected] ~]# /usr/libexec/qemu-kvm -drive format=?
      Supported formats: raw cow qcow vdi vmdk cloop dmg bochs vpc vvfat qcow2 qed vhdx parallels nbd blkdebug host_cdrom host_floppy host_device file gluster gluster gluster gluster rbd
    4. [[email protected] ~]# /usr/libexec/qemu-kvm -M ?
      Supported machines are:
      pc         RHEL 6.5.0 PC (alias of rhel6.5.0)
      rhel6.5.0  RHEL 6.5.0 PC (default)
      rhel6.4.0  RHEL 6.4.0 PC
      rhel6.3.0  RHEL 6.3.0 PC
      rhel6.2.0  RHEL 6.2.0 PC
      rhel6.1.0  RHEL 6.1.0 PC
      rhel6.0.0  RHEL 6.0.0 PC
      rhel5.5.0  RHEL 5.5.0 PC
      rhel5.4.4  RHEL 5.4.4 PC
      rhel5.4.0  RHEL 5.4.0 PC
      如果升级后新建虚拟机碰到上述提示信息,可以修改虚拟机的xml配置文件,machine=‘rhel6.5.0’或者干脆删掉machine,然后用virsh define 虚拟机名字.xml
      <os>
          <type arch=‘x86_64‘ machine=‘rhel6.5.0‘>hvm</type>
          <boot dev=‘hd‘/>
          <smbios mode=‘sysinfo‘/>
        </os>
    5. yum install ceph-common -y
    6. 注意:目前生产环境是基于centos6.5构建openstack I版本,openstack-nova-compute-2014.1.5-1.el6.noarch->libvirt-python-0.10.2-54->libvirt 0.10.2-> QEMU 0.12.1,而这个版本的QEMU不支持rbd协议,openstack-nova-compute-2014.1.5-1只支持ibvirt-python-0.10.2-54,如果你升级
      libvirt那么相应的libvirt-python也要升级,进而openstack-nova-compute也要升级,其实你只需要用同一版本的qemu带ceph支持的包替换原来的qemu版本就可以了。
    7. 查看命令(升级后的结果应该是这样)
    8. 升级方法:          Supported formats: raw cow qcow vdi vmdk cloop dmg bochs vpc vvfat qcow2 qed vhdx parallels nbd blkdebug host_cdrom host_floppy host_device file gluster gluster gluster gluster rbd --------------->看到这个证明升级成功
    9. 制作secret.xml文件,注意标红部分必须是2->b->i指定的名字
    10. virsh secret-define --file secret.xml
    11. 找到刚刚定义的client.cinder用户的uuid
    12. 找到ceph提供的秘钥文件的秘钥
    13. virsh secret-set-value $(virsh secret-list |grep client.cinder |awk ‘{print $1}‘) --base64  $(cat /etc/ceph/ceph.client.cinder.keyring |awk ‘NR==2{print $3}‘)
    14. vim /etc/nova/nova.conf
       rbd_user=cinde
       rbd_secret_uuid=dda10a4e-c03c-b029-ef07-ce86e7a07bdd        ------------------>值为:virsh secret-list |grep client.cinder |awk ‘{print $1}
    15. /etc/init.d/openstack-nova-compute restart
    16. cat /etc/ceph/ceph.client.cinder.keyring
    17. virsh secret-list
    18. cat > secret.xml <<EOF
      <secret ephemeral=‘no‘ private=‘no‘>
        <usage type=‘ceph‘>
          <name>client.cinder secret</name>
        </usage>
      </secret>
      EOF
    19. 链接:http://172.16.201.36/qemu-kvm-for-ceph/或者http://apt-mirror.sepia.ceph.com/centos6-qemu-kvm/
    20. 下载qemu-开头的包,放到本地路径
    21. 切换到本地路径下执行rpm -Uvh qemu-* --force
    22. service libvirtd restart
    23. /usr/libexec/qemu-kvm -drive format=?

延伸:cinder为云主机提供云盘,在计算节点的映射关系

分析:在为云主机添加完云盘后,进入该云主机所在的计算机点

进入云主机fdisk -l,可以发现新增了一块硬盘

进入云主机所在的计算节点,发现同样新增了一块硬盘

问题就是,cinder服务其实就是把硬盘映射给了计算节点,读写请求都交给计算节点去做,然后计算节点负责把该硬盘映射给自己虚拟出来的云主机

在计算节点:

一:                                     1.

[[email protected] by-path]# ll /dev/disk/by-path/ip-10.5.0.20\:3260-iscsi-iqn.2010-10.org.openstack\:volume-26f04424-7ddb-4756-9648-e023b84bcd5e-lun-1

lrwxrwxrwx. 1 root root 9 May 25 18:43 /dev/disk/by-path/ip-10.5.0.20:3260-iscsi-iqn.2010-10.org.openstack:volume-26f04424-7ddb-4756-9648-e023b84bcd5e-lun-1 -> ../../sdb

二:

[[email protected] by-path]# cat /etc/libvirt/qemu/instance-00000031.xml |grep disk
<disk type=‘file‘ device=‘disk‘>
<source file=‘/var/lib/nova/instances/db14cd53-b791-4f0b-91cd-0e160dd7b794/disk‘/>
</disk>
<disk type=‘block‘ device=‘disk‘>
<source dev=‘/dev/disk/by-path/ip-10.5.0.20:3260-iscsi-iqn.2010-10.org.openstack:volume-26f04424-7ddb-4756-9648-e023b84bcd5e-lun-1‘/>
</disk>

时间: 2024-11-08 22:38:20

Ceph与OpenStack整合(仅为云主机提供云盘功能)的相关文章

Ceph与OpenStack整合(将云主机磁盘镜像文件直接建在ceph集群vms存储池中)

思路及实现: 1.承接前两篇文章,镜像服务的存储 池为images,云盘的存储池为volumes,目前要完成openstack新建云主机磁盘镜像文件直接存放到ceph中去(在ceph中新建存储池vms). 云主机在启动时需要有能访问镜像存储池images和云盘存储池volumes的能力,所以你需要在ceph集群的monitor节点新建存储池vms,同时新建账号,该账号具有对vms,images, 以及volumes三个存储池的rwx权限 2.这里请务必注意一个细节:回忆第一篇ceph与opens

Ceph与OpenStack整合(与glance整合)

2. Ceph与OpenStack整合(与glance整合) 创建: linhaifeng,最新修改: 昨天4:18 下午 思路:1.ceph集群monitor节点创建存储池images-pool,创建访问该存储池的用户images,导出秘钥文件ceph.client.images.keyring,发送ceph.conf和ceph.client.images.keyring到glance客户端的/etc/ceph目录下 2.所有glance节点安装python-rbd软件包,修改glance.a

什么是云主机,云主机是什么样的?

什么是云主机?这确实是值得思考的问题,随着互联网的快速发展,人们在享受互联网时代给我们带来了便利,但是同时也会因有很多新鲜事物的诞生而费解,什么是人工智能?区块链是什么?大数据又是什么东西?我们不理解这些事物的话,就一定先了解了解它的概念吧,就像我前面提到的问题,什么是云主机? 说起来云主机,就不得不提云计算了,云计算的核心思想,就是将大量使用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务.云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而不是在独立计算机或远程服务

阿里云主机添加云磁盘

# fdisk -l Disk /dev/xvdb doesn't contain a valid partition table 2. 创建分区 # fdisk /dev/xvdb ... 输入n Command (m for help):n 输入p Command actione extendedp primary partition (1-4)p 输入1 Partition number (1-4): 1 回车 First cylinder (1-2610, default 1): Usi

云主机五大技术问题-众一网络

1.虚拟化技术 虚拟化技术是指计算元件在虚拟的基础上而不是真实的基础上运行,它可以扩大硬件的容量,简化软件的重新配置过程,减少软件虚拟机相关开销和支持更广泛的操作系统方面.通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式.虚拟化技术根据对象可分成存储虚拟化.计算虚拟化.网络虚拟化等,计算虚拟化又分为系统级虚拟化.应用级虚拟化和桌面虚拟化目.在云计算实现中.计算系统虚拟化是一切建立在“云”上的服务与应用的基础.

云主机适合那种客户与特点-众一网络

云主机是新一代的主机租用服务,它整合了高屈服服务器和优异Internet 带宽,无效办理了保守主机租用代价偏高.服务品污七八糟等弊端,可全 面满足中小企业.小我私家站长用户对主机租用服务低本钱,高可靠,易解决 的必要. 云主机适合什么样的用户 ? 1.服务商的运营伎俩.Internet风致和波动性较为关注.2.零碎高可用性和倏地恢复.3.垂青主机服务性价比.4.需要倏地实现散布式安排.5.对业务的弹性扩充伎俩有必要.6.但愿轻松解决云主机打造品用处 ,网站早期投入,牵制本钱方面 初次决定主机服务

雷军开卖“大米”云主机,金山云起用小米互联网思维

(上图为金山云高级副总裁侯震宇) 2016年11月25日,在北京国家会议中心召开的GITC 2016全球互联网技术大会,金山云发布了一款专为创业者而设计的性能王云主机"大米",欲以99元/台/月的高性价比改变当前云计算行业格局,而同时推出的还有高性能混合云解决方案"米仓".这不仅是小米互联网思维在云计算行业的首秀,而且从命名来看,雷军大有在云计算产业"广积粮"之深意. 先说"大米"云主机,这是一款配置了2核英特尔至强E5V4处

【转】阿里云主机购买使用教程

转载地址:http://waihuizhan.com/aliyun/ 现在的云主机很多了,像什么华为云.天翼云.腾讯云等等,然而看看这些云主机的使用人数.论坛人气.性价比.售后服务等,综合这些因素来看,我认为还是阿里云服务器好. 阿里云的创新是有目共睹的,经常会有新的产品出台,优惠活也很频繁.有问题提交工单,工作人员回答很及时,必要时工作人员会致电解答.论坛求帮助,也会有专门的版主回帖. 阿里云目前拥有北京.杭州.青岛.深圳.香港等地区的机房,你可以根据网站访问区域来选择把网站放在哪个机房.机房

阿里云主机实战应用之centos7上的防火墙设置

最近公司又上了一台服务器,以前都是用centos 6系统,这次选择使用了centos 7系统的安装镜像,因为现在程序版本在centos 7上一般php默认就是5.4以上的,mysql也变成了mariadb,但使用都一样而已,apache安装的httpd程序也是2.4的版本,所以就算yum安装基本服务也是比较新一些的版本吧. 公司拨款后就在阿里云后台买了台主机,直接yum装的lamp,添加虚拟主机的配置文件这里就不说了,网上一堆的配置文档,只记录下,在centos7上遇到的坑. lamp环境都搭好