如果首次安装没有使用ceph作为存储,同样也可以重新部署为存储使用ceph,注意,在本例中,重新部署后,所有的后端存储都使用ceph,包括虚拟机文件、cinder、glance、对象存储。另外,本示例的前提是一开始就使用kolla作为部署工具。
下面是简单步骤:
1.增加一块硬盘,/dev/sdb,然后分区:
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
查看结果:
parted /dev/sdb print
2.配置ceph:
创建/etc/kolla/config/ceph.conf:
[global] osd pool default size = 2 osd pool default min size = 1
上面的配置表示ceph的对象存储副本数是2,最小副本数是1
3.修改/etc/kolla/global.yml文件:
enable_cinder: "yes" enable_ceph: "yes" enable_ceph_rgw: "yes" enable_ceph_rgw_keystone: "yes" glance_backend_ceph: "yes"
如果是使用虚拟化实验环境,那么你需要把virt_type=qemu :
mkdir -p /etc/kolla/config/nova cat << EOF > /etc/kolla/config/nova/nova-compute.conf [libvirt] virt_type=qemu cpu_mode = none EOF
4.修改/root/kolla-ansible-4.0.3.dev36/ansible/inventory/all-in-one文件,将localhost改为control01:
vim /root/kolla-ansible-4.0.3.dev36/ansible/inventory/all-in-one :%s/localhost/control01/g
注意,多节点实现方法也是一样的。
5.执行deploy:
/root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible deploy -i /root/kolla-ansible-4.0.3.dev36/ansible/inventory/all-in-one
后续如果扩容磁盘,也是非常方便的,直接在宿主机上增加硬盘,然后对每一块硬盘打标签,然后重新执行deploy即可,步骤如下:
1..OSD盘打标:
parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1 parted /dev/sdd -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
注意,整块盘作为一个OSD只能用标签KOLLA_CEPH_OSD_BOOTSTRAP ,如果日志分区单独使用SSD固态硬盘的分区,则使用不同标签,比如/dev/sdb 标签为KOLLA_CEPH_OSD_BOOTSTRAP_SDC ,日志分区/dev/sdh1 标签为:KOLLA_CEPH_OSD_BOOTSTRAP_SDC_J
2.部署前的检查:
tools/kolla_ansible prechecks -i 3node
注意:3node是inventory文件,根据实际环境替换。
检查报错6780端口占用,查询这个端口是ceph_rgw容器占用,临时将这个容器关闭: docker stop ceph_rgw
3.部署:
tools/kolla_ansible deploy -i 3node
注意:3node是inventory文件,根据实际环境替换。
部署完成后,将上面关闭的容器ceph_rgw启动:
docker start ceph_rgw
4、检查OSD的CRUSH规则(数据分布存放规则):
docker exec -it ceph_mon ceph osd getcrushmap -o /var/log/kolla/ceph/crushmap.bin docker exec -it ceph_mon crushtool -d /var/log/kolla/ceph/crushmap.bin -o /var/log/kolla/ceph/crushmap
原文地址:http://blog.51cto.com/yuweibing/2071452