背景

接上一篇博文:使用kolla在VM中all-in-one安装部署OpenStack Ocata
继续在已安装了 all in one 的 OpenStack 的虚拟机中,继续安装ceph,实现与 nova,glance,cinder 的整合,以及支持 Swift API。

在继续安装前,请务必把 all in one 的 OpenStack 里的所有虚拟机和镜像全部删除。

添加虚拟机磁盘

由于ceph安装要求,必须为之前的虚拟机增加一块虚拟磁盘,选择虚拟机“设置-->存储-->控制器:SATA-->添加虚拟磁盘”,在添加过程中,选择“创建新的虚拟盘-->虚拟硬盘文件类型”,向导模式显示前三种类型,专家模式显示所有类型,类型说明如下,根据实际需要自行选择:

  • VDI
    VirtualBox的自有虚拟磁盘类型,当创建新的虚拟机时会自动选用此类型创建一个虚拟磁盘。
  • VHD
    微软早起在 Virtual PC 以及 Virtual Server 中使用,如今最新的 Hyper-V 3.0 以上版本已经支持 VHDX 格式。
  • VMDK
    VMWare 采用的虚拟磁盘格式。
  • HDD
    桌面虚拟化 Parallels 的虚拟磁盘格式
  • QCOW
    较旧的 QEMU 虚拟磁盘格式,现在以很少使用该格式了,一般用于兼容 0.8.3版本之前的 QEMU。它支持 backing_file(后端镜像)和 encryption(加密)两个选项。
  • QED
    是 QEMU 的增强型虚拟磁盘格式,其执行速度超过 QCOW 格式,具备非同步I/O路径,强化数据一致性以及文件恢复机制。

选择 100G 动态分配的虚拟磁盘,然后重启虚拟机,进入系统,使用 fdisk -l 就可以看到新增加的磁盘 /dev/sdb。
键入命令为这块磁盘打上标签:

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

检查是否已打好标签:

parted /dev/sdb print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name                      标志
 1      1049kB  107GB  107GB               KOLLA_CEPH_OSD_BOOTSTRAP

修改kolla相关配置文件

新增ceph配置文件,因为目前是 all in one 部署,数据只存放单份。

vi /etc/kolla/config/ceph.conf
[global]
osd pool default size = 1
osd pool default min size = 1

修改 kolla 全局配置文件:

vi /etc/kolla/globals.conf
enable_ceph: "yes"
enable_ceph_rgw: "yes"
enable_cinder: "yes"
enable_ceph_rgw_keystone: "yes"
glance_backend_ceph: "yes"

使用kolla部署

kolla-ansible deploy -i /root/all-in-one

安装虚拟机镜像

ceph要求Raw格式存放虚拟机镜像,所以要把之前的qcow2的镜像文件进行格式转换,需要安装格式转换工具:

yum install qemu-img

下载最新的cirros镜像文件:

wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

查看获取到的镜像文件的信息:

qemu-img info cirros-0.3.5-x86_64-disk.img
Model: ATA VBOX HARDDISK (scsi)
image: cirros-0.3.5-x86_64-disk.img
file format: qcow2
virtual size: 39M (41126400 bytes)
disk size: 13M
cluster_size: 65536
Format specific information:
    compat: 0.10

转换成raw格式:

qemu-img convert -f qcow2 -O raw cirros-0.3.5-x86_64-disk.img cirros-0.3.5-x86_64-disk.raw

查看转换后的镜像文件的信息:

qemu-img info cirros-0.3.5-x86_64-disk.raw
image: cirros-0.3.5-x86_64-disk.raw
file format: raw
virtual size: 39M (41126400 bytes)
disk size: 18M

登录openstack的horizon界面,下载OpenStack RC 文件 V3 ,将这个文件保存为admin-openrc.sh,由于我们之前是 all in one 的安装,所以VIP设置了一个不存在的IP,需要再改为目前虚拟机的IP,修改 export OS_AUTH_URL=http://10.0.2.15:5000/v3 ,运行一次设置环境变量:

source admin-openrc.sh

可以上传转换后的raw镜像:

openstack image create --disk-format raw --container-format bare --public true --file ./cirros-0.3.5-x86_64-disk.raw

管理ceph

ceph容器化部署后,所有的管理命令前只需要增加 “docker exec -it 容器名称”即可,比如

docker exec -it ceph_mon ceph osd pool ls