使用 kolla-ansible 安装 ceph 进行多合一设置
Installing ceph using kolla-ansible for all-in-one setup
我正在尝试使用启用了 ceph 的 kolla-ansible 部署一体化配置
enable_ceph: "yes"
#enable_ceph_mds: "no"
enable_ceph_rgw: "yes"
#enable_ceph_nfs: "no"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
#enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
glance_backend_ceph: "yes"
gnocchi_backend_storage: "{{ 'ceph' if enable_ceph|bool else 'file' }}"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_backup_driver: "ceph"
nova_backend_ceph: "{{ enable_ceph }}"
并且,我的设置包括一个 Virtual Box VM Ubuntu 18.04.4 桌面版本,2 CPU 核心,30 GB 磁盘(单磁盘),2GB RAM,分区类型是msdos.
ansible版本==2.9.7
kolla-ansible 版本==9.1.0
为了使用 kolla-ansible 安装 ceph OSD,我读到一个分区的名称应该是 KOLLA_CEPH_OSD_BOOTSTRAP_BS。
因此,我创建了 20 GB 的根分区,即 /dev/sda1,然后是一个扩展分区 /dev/sda2,用于剩余的 20GB,然后是两个逻辑分区(/dev/sda5 和 /dev/sda6) 每个 10GB 用于 OSD。但是在msdos类型的分区中没有为分区分配名称的功能。
所以我的问题是:
- 如果是 msdos 类型的分区,我该如何标记分区,以便 kolla-ansible 识别 /dev/sda5 和 /dev/sda6 是为 Ceph-OSD 指定的?
- 是否必须有一个单独的存储驱动器而不是包含 Ceph OSD 操作系统的驱动器(我知道不建议将所有驱动器都放在一个磁盘中)?
- 为了使用 kolla-ansible 安装 Ceph-OSD,我必须如何配置我的单驱动器 HD space?
P.S:我还尝试使用 OpenStack VM(4 CPU 内核,80GB 磁盘 space - 单个驱动器,使用 kolla-ansible 安装 ceph,因为我没有install Cinder in my OpenStack infra.)和Ubuntu 18.04.4 Cloud image,GPT分区类型,支持命名分区,分区如下:
/dev/vda1 根分区
/dev/vda2 对于 ceph OSD
/dev/vda3 对于 ceph OSD
但缺点是,kolla-ansible 刷完了整个盘,导致安装失败
非常感谢任何帮助。提前致谢。
我还安装了一个以 Ceph 作为存储后端的 Kolla-Ansible 单节点一体机,所以我遇到了同样的问题。
是的,ceph 的 bluestore 安装不适用于单个分区。我也尝试过不同的标记方式,但对我来说它只适用于整个磁盘,而不是分区。因此,为您的虚拟设置创建一个全新的磁盘,例如 /dev/vdb
.
为了标记,我将以下内容用作 bash-脚本:
#!/bin/bash
DEV="/dev/vdb"
(
echo g # create GPT partition table
echo n # new partiton
echo # partition number (automatic)
echo # start sector (automatic)
echo +10G # end sector (use 10G size)
echo w # write changes
) | fdisk $DEV
parted $DEV -- name 1 KOLLA_CEPH_OSD_BOOTSTRAP_BS
请注意,开头的 DEV
已针对您的设置进行了正确设置。这会在新磁盘上创建一个新分区 table 和一个 10GB 大小的分区。 kolla-ansible deploy-运行 注册标签并擦除整盘,所以size-value没什么好说的,只是针对盘上的临时分区。
kolla-ansible 中的 Ceph-OSD 一张光盘就足够了。您不需要第二个 OSD。为此,当您使用默认的 kolla 安装路径时,在此路径中的 kolla-ansible 设置中添加以下配置文件:/etc/kolla/config/ceph.conf
内容为:
[global]
osd pool default size = 1
osd pool default min size = 1
这是为了确保 kolla-ansible 只请求一个 OSD。如果带有 globals.yml
的 kolla 目录不在 /etc/kolla/
下,您还必须更改配置文件的路径。
设置单盘多分区的解决方案是将 kolla-ansible 设置中的 ceph-storage 的存储类型从 bluestore 切换到旧的文件存储 OSD 类型。这也需要不同的分区标签,如此处所写: https://docs.openstack.org/kolla-ansible/rocky/reference/ceph-guide.html#using-an-external-journal-drive 。
对于文件存储,您需要一个带有标签 KOLLA_CEPH_OSD_BOOTSTRAP_FOO
的分区和一个带有标签 KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J
的小日志分区(名称中的 FOO
确实是必需的......)。为了能够将您的 kolla 安装切换到文件存储 OSD 类型,编辑一体文件的 [storage]
部分,通过在主机旁边添加 ceph_osd_store_type=filestore
如下,以覆盖默认的 bluestore。
[storage]
localhost ansible_connection=local ceph_osd_store_type=filestore
上述方法已在 ansible==2.9.7
和 kolla-ansible==9.1.0
和 OpenStack Train release
以及之前的版本中进行了测试。
我正在尝试使用启用了 ceph 的 kolla-ansible 部署一体化配置
enable_ceph: "yes"
#enable_ceph_mds: "no"
enable_ceph_rgw: "yes"
#enable_ceph_nfs: "no"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
#enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
glance_backend_ceph: "yes"
gnocchi_backend_storage: "{{ 'ceph' if enable_ceph|bool else 'file' }}"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_backup_driver: "ceph"
nova_backend_ceph: "{{ enable_ceph }}"
并且,我的设置包括一个 Virtual Box VM Ubuntu 18.04.4 桌面版本,2 CPU 核心,30 GB 磁盘(单磁盘),2GB RAM,分区类型是msdos.
ansible版本==2.9.7
kolla-ansible 版本==9.1.0
为了使用 kolla-ansible 安装 ceph OSD,我读到一个分区的名称应该是 KOLLA_CEPH_OSD_BOOTSTRAP_BS。
因此,我创建了 20 GB 的根分区,即 /dev/sda1,然后是一个扩展分区 /dev/sda2,用于剩余的 20GB,然后是两个逻辑分区(/dev/sda5 和 /dev/sda6) 每个 10GB 用于 OSD。但是在msdos类型的分区中没有为分区分配名称的功能。
所以我的问题是:
- 如果是 msdos 类型的分区,我该如何标记分区,以便 kolla-ansible 识别 /dev/sda5 和 /dev/sda6 是为 Ceph-OSD 指定的?
- 是否必须有一个单独的存储驱动器而不是包含 Ceph OSD 操作系统的驱动器(我知道不建议将所有驱动器都放在一个磁盘中)?
- 为了使用 kolla-ansible 安装 Ceph-OSD,我必须如何配置我的单驱动器 HD space?
P.S:我还尝试使用 OpenStack VM(4 CPU 内核,80GB 磁盘 space - 单个驱动器,使用 kolla-ansible 安装 ceph,因为我没有install Cinder in my OpenStack infra.)和Ubuntu 18.04.4 Cloud image,GPT分区类型,支持命名分区,分区如下:
/dev/vda1 根分区
/dev/vda2 对于 ceph OSD
/dev/vda3 对于 ceph OSD
但缺点是,kolla-ansible 刷完了整个盘,导致安装失败
非常感谢任何帮助。提前致谢。
我还安装了一个以 Ceph 作为存储后端的 Kolla-Ansible 单节点一体机,所以我遇到了同样的问题。
是的,ceph 的 bluestore 安装不适用于单个分区。我也尝试过不同的标记方式,但对我来说它只适用于整个磁盘,而不是分区。因此,为您的虚拟设置创建一个全新的磁盘,例如 /dev/vdb
.
为了标记,我将以下内容用作 bash-脚本:
#!/bin/bash
DEV="/dev/vdb"
(
echo g # create GPT partition table
echo n # new partiton
echo # partition number (automatic)
echo # start sector (automatic)
echo +10G # end sector (use 10G size)
echo w # write changes
) | fdisk $DEV
parted $DEV -- name 1 KOLLA_CEPH_OSD_BOOTSTRAP_BS
请注意,开头的 DEV
已针对您的设置进行了正确设置。这会在新磁盘上创建一个新分区 table 和一个 10GB 大小的分区。 kolla-ansible deploy-运行 注册标签并擦除整盘,所以size-value没什么好说的,只是针对盘上的临时分区。
kolla-ansible 中的 Ceph-OSD 一张光盘就足够了。您不需要第二个 OSD。为此,当您使用默认的 kolla 安装路径时,在此路径中的 kolla-ansible 设置中添加以下配置文件:/etc/kolla/config/ceph.conf
内容为:
[global]
osd pool default size = 1
osd pool default min size = 1
这是为了确保 kolla-ansible 只请求一个 OSD。如果带有 globals.yml
的 kolla 目录不在 /etc/kolla/
下,您还必须更改配置文件的路径。
设置单盘多分区的解决方案是将 kolla-ansible 设置中的 ceph-storage 的存储类型从 bluestore 切换到旧的文件存储 OSD 类型。这也需要不同的分区标签,如此处所写: https://docs.openstack.org/kolla-ansible/rocky/reference/ceph-guide.html#using-an-external-journal-drive 。
对于文件存储,您需要一个带有标签 KOLLA_CEPH_OSD_BOOTSTRAP_FOO
的分区和一个带有标签 KOLLA_CEPH_OSD_BOOTSTRAP_FOO_J
的小日志分区(名称中的 FOO
确实是必需的......)。为了能够将您的 kolla 安装切换到文件存储 OSD 类型,编辑一体文件的 [storage]
部分,通过在主机旁边添加 ceph_osd_store_type=filestore
如下,以覆盖默认的 bluestore。
[storage]
localhost ansible_connection=local ceph_osd_store_type=filestore
上述方法已在 ansible==2.9.7
和 kolla-ansible==9.1.0
和 OpenStack Train release
以及之前的版本中进行了测试。