您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關ceph-ansible 中怎么快速部署 ceph,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
操作系統:CentOS 7.6, 需要 4 個節點(1 monitor + 3 osd node)或者 6 個節點(3 monitor +3 osd node), 當然 monitor 也可以部署在 osd node 上。
ceph版本:Luminous(12.2.11),使用 centos 官方 storage repo 里的版本
ansible 版本: 2.6.16 (可使用 virtualenv 和 pip 安裝, 版本必須與 ceph-ansible 要求匹配)
ceph-ansible 版本: 3.2.15 (直接在 github 上 下載相應的版本)
集群網絡(cluster network): 192.168.122.0/24, 用于集群內數據同步及存儲管理
服務網絡(public network) : 10.0.122.0/24, 用于客戶端讀寫數據
準備 7 ceph個集群節點,3個 monitor 節點,3 個 osd 節點,1 個 admin 節點,每個節點雙網卡,ip配置如下
節點 cluster ip public ip -------------------------------------- mon-11 192.168.122.11 mon-12 192.168.122.12 mon-13 192.168.122.13 osd-21 10.0.122.21 192.168.122.21 osd-22 10.0.122.22 192.168.122.22 osd-23 10.0.122.23 192.168.122.23 admin-node 192.168.122.100 --------------------------------------
monitor 節點是不需要 cluster ip 的,它只需要 public network。因為我們要在線軟件源,因此 public network 一定要能訪問公網。
admin-node 做部署節點,安裝 ansible 和 ceph-ansible
在 admin-node 節點上配置 /etc/hosts
192.168.122.11 mon-11 192.168.122.12 mon-12 192.168.122.13 mon-13 192.168.122.21 osd-21 192.168.122.22 osd-22 192.168.122.23 osd-23
在 admin-node 配置與 6 個ceph節點的 ssh 免密登錄,例如:
# ssh-keygen # ssh-copy-id root@mon-11
禁用 firewalld
# systemctl stop firewalld # systemctl disable firewalld
禁用 selinux,重使其生效
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # reboot
以下是一個 osd 節點上的磁盤列表, 其中 vda 是操作系統所在的盤。
sda 8:0 0 100G 0 disk sdb 8:16 0 100G 0 disk sdc 8:32 0 100G 0 disk sdd 8:48 0 20G 0 disk vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 39G 0 part ├─centos-root 253:0 0 35G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm [SWAP]
ceph luminous 已經支持 bluestore 作為后端,但是我們這次還是使用 filestore。 其中 sda、sdb、sdc 作為 osd 盤,每塊盤 100G, sdd 做 journal 盤,大小 20G
所有的集群節點上上,安裝如下軟件:
# yum install centos-release-luminous-* epel-release -y
安裝完成以后,刷新源索引
# yum repolist
在 admin-node 上進行如下操作
安裝 anible
$ yum install python-pip -y $ pip install ansible==2.6.16
獲取 ceph-ansible 并解壓
$ wget https://codeload.github.com/ceph/ceph-ansible/zip/v3.2.15
創建 ansible_hosts 文件, 復制到 ceph-ansible 文件夾
[ceph:children] mons osds [mons] mon-11 mon-12 mon-13 [osds] osd-21 osd-22 osd-23
打開解壓后的ceph-ansible
# cp site.yml.sample site.yml
編輯 site.yml 文件, 更改開頭的目標節點組,只保留 mons 和 osds
--- # Defines deployment design and assigns role to server groups - hosts: - mons - osds # - mdss # - agents # - mgrs # - rgws # - nfss # - restapis # - rbdmirrors # - clients # - iscsigws # - iscsi-gws # for backward compatibility only!
打開 group_vars 目錄, 拷貝模板文件
# cd group_vars # cp all.yml.sample all.yml # cp mons.yml.sample mons.yml # cp osds.yml.sample osds.yml
編輯 all.yml 文件, 我只做了如下更改,也許不用改這么多。另外 monitor 節點必須用 public ip,因為要面向客戶端提供服務。
# Inventory host group variables mon_group_name: mons osd_group_name: osds ############ # PACKAGES # ############ centos_package_dependencies: - python-pycurl - epel-release - python-setuptools - libselinux-python upgrade_ceph_packages: False #ceph_use_distro_backports: false # DEBIAN ONLY ########### # INSTALL # ########### #ceph_repository_type: dummy ceph_origin: distro ## Monitor options monitor_interface: eth2 #monitor_address: 0.0.0.0 monitor_address_block: 10.0.122.0/24 ## OSD options journal_size: 3072 # OSD journal size in MB #block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'. public_network: 10.0.122.0/24 cluster_network: 192.168.122.0/24 #osd_mkfs_type: xfs #osd_mkfs_options_xfs: -f -i size=2048 #osd_mount_options_xfs: noatime,largeio,inode64,swalloc osd_objectstore: filestore
編輯 osds.yml 文件,里面有幾種情景,我們用的是情景二 non-collocated,也就是日志和數據存放在不同的磁盤上。
--- # Variables here are applicable to all host groups NOT roles osd_scenario: non-collocated devices: - /dev/sda - /dev/sdb - /dev/sdc dedicated_devices: - /dev/sdd - /dev/sdd - /dev/sdd # 這樣配置的后果就是,/dev/sdd 上會新生成三個分區 /dev/sdd1、/dev/sdd2、/dev/sdd3, # 分別作為 /dev/sda, /dev/sdb, /dev/sdc 的journal 分區。
因為我們只是簡單的實驗集群,所以不需要對 mons.yml 做特殊配置,保持默認就可以了。
退回到 ceph-ansible 目錄,開始部署,等待部署完成。
# ansible-playbook site.yml -u root -i ./ansible_hosts
部署完成后,登錄一個 mon節點, 查看集群狀態和 osd daemon 分布
# ceph -w # ceph osd tree
以上就是ceph-ansible 中怎么快速部署 ceph,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。