环境准备
- 至少三台虚拟机作为ceph节点
- 一台部署机(可以虚拟机)
- 部署机可免密登录三台ceph节点虚拟机,三台ceph节点虚拟机之间可免密登录。
- 三台虚拟机上分配需要的磁盘容量。
- 虚拟机和部署机可连接公网或局域网内有软件包源。
部署流程
1. 部署机和ceph节点都需要执行的操作
## yum 源配置
```
vim /etc/yum.repos.d/ceph.repo
[ceph-nautilus-noarch]
name = ceph nautilus noarch
baseurl = file://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck = 0
enabled = 1
[ceph-nautilus]
name = ceph nautilus $basearch
baseurl = file://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch/
gpgcheck = 0
enabled = 1
wget -O /etc/yum.repos.d/epel.repo file://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
```
源路径需自行校对
## hosts 配置
```
vim /etc/hosts
192.168.10.11 ceph-192e168e10e11
192.168.10.12 ceph-192e168e10e12
192.168.10.13 ceph-192e168e10e13
```
## ssh 免密配置
```
vim /root/.ssh/config
Host *
StrictHostKeyChecking no
Host ceph-192e168e10e11
Hostname ceph-192e168e10e11
User root
Port 22
Host ceph-192e168e10e12
Hostname ceph-192e168e10e12
User root
Port 22
Host ceph-192e168e10e13
Hostname ceph-192e168e10e13
User root
Port 22
```
2. ceph 节点执行的操作
所有ceph节点均执行如下操作:
## 关闭防火墙、关闭selinux
```
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenfore 0
```
## 时间同步配置
```
vim /etc/chrony.conf ## 注释其他 ntp server
server ntp.aliyun.com iburst
systemctl start chronyd
systemctl enable chronyd
```
## 分区
```
# 采用filestore方式部署osd,需要指定osd的数据存放位置和日志存放位置,生产环境日志存放位置应为ssd,根据生产环境实际情况分区
parted /dev/sda
```
## 安装 ceph
```
yum install -y librados2-14.2.8
yum install -y ceph-14.2.8
```
3. 部署机执行的操作
## 安装 ceph-deploy
```
yum install ceph-deploy
```
## 创建 mon
```
ceph-deploy mon new --cluster-network 192.168.10.0/24 --public-network 192.168.10.0/24 ceph-192e168e10e11 ceph-192e168e10e12 ceph-192e168e10e13
ceph-deploy mon create-initial
```
## 分发 admin keyring 至 mon 节点
```
ceph-deploy admin ceph-192e168e10e11 ceph-192e168e10e12 ceph-192e168e10e13
```
## 创建 mgr
```
ceph-deploy mgr create ceph-192e168e10e11 ceph-192e168e10e12 ceph-192e168e10e13
```
## 创建 osd
```
ceph-deploy osd create ceph-192e168e10e11 --filestore --data /dev/sdb1 --journal /dev/sdb6
ceph-deploy osd create ceph-192e168e10e11 --filestore --data /dev/sdb2 --journal /dev/sdb7
ceph-deploy osd create ceph-192e168e10e11 --filestore --data /dev/sdb3 --journal /dev/sdb8
ceph-deploy osd create ceph-192e168e10e11 --filestore --data /dev/sdb4 --journal /dev/sdb9
ceph-deploy osd create ceph-192e168e10e11 --filestore --data /dev/sdb5 --journal /dev/sdb10
ceph-deploy osd create ceph-192e168e10e12 --filestore --data /dev/sda1 --journal /dev/sda6
ceph-deploy osd create ceph-192e168e10e12 --filestore --data /dev/sda2 --journal /dev/sda7
ceph-deploy osd create ceph-192e168e10e12 --filestore --data /dev/sda3 --journal /dev/sda8
ceph-deploy osd create ceph-192e168e10e12 --filestore --data /dev/sda4 --journal /dev/sda9
ceph-deploy osd create ceph-192e168e10e12 --filestore --data /dev/sda5 --journal /dev/sda10
ceph-deploy osd create ceph-192e168e10e13 --filestore --data /dev/sda1 --journal /dev/sda6
ceph-deploy osd create ceph-192e168e10e13 --filestore --data /dev/sda2 --journal /dev/sda7
ceph-deploy osd create ceph-192e168e10e13 --filestore --data /dev/sda3 --journal /dev/sda8
ceph-deploy osd create ceph-192e168e10e13 --filestore --data /dev/sda4 --journal /dev/sda9
ceph-deploy osd create ceph-192e168e10e13 --filestore --data /dev/sda5 --journal /dev/sda10
```
4. ceph 节点执行的操作
以下操作ceph节点,任意一个节点执行即可。
## 创建资源池
```
ceph osd pool create volumes 1024 1024
ceph osd pool create images 32 32
ceph osd pool create backups 32 32
ceph osd pool application enable volumes rbd
ceph osd pool application enable images rbd
ceph osd pool application enable backups rbd
ceph osd set-require-min-compat-client luminous
ceph balancer mode upmap
```
## 生成服务使用的keyring
```
ceph auth get-or-create client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes ,profile rbd pool=images' > ceph.client.cinder.keyring
ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=images' > ceph.client.glance.keyring
ceph auth get-or-create client.cinder-backup mon 'profile rbd' osd 'profile rbd pool=backups' > ceph.client.cinder-backup.keyring
```
生产环境和虚拟机环境差异
- 生产环境日志是放在ssd上,一般单台服务器是12块磁盘, 12 个osd,等于每个osd单独使用一个磁盘。集群5个mon,5个mgr
- 生产环境需配置防火墙规则
- 生产环境需配置调整磁盘的io调度策略、磁盘的预读取缓存、网卡中断、CPU绑定等优化策略。