目录
CentOS7.5 安装Ceph
1 关闭防火墙
2 更新内核
3 添加epel库
4 添加ceph软件库
5 在admin节点安装ceph-deploy、ntp
6 添加用户(如果使用root用户就不需要操作这步)
7 配置无密钥登录
8 修改ssh配置文件
9确保你的包管理器安装了优先级/首选项包,且已启用
10 新建一个集群目录
11 禁用requiretty
12如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:
13 创建集群
14 修改默认副本
15 如果多块网卡,可以添加public network
16 安装ceph
17 配置初始化monitor(s),并收集所有秘钥:
18 添加两个OSD
19 在admin执行命令上准备OSD
20 激活OSD
21 用ceph-deploy把配置文件和admin秘钥拷贝到其他节点
22 确保当前用户对ceph.client.admin.keyring有正确的操作权限
23 检查集群的健康状况
参考ceph中文文档:http://docs.ceph.org.cn/
环境:
在物理机上的/etc/hosts/上加入主机映射
192.168.152.101 admin
192.168.152.102 node1
# systemctl stop firewalld
# systemctl disable firewalld
如果使用iptables,要开放Ceph Monitors使用的6789端口和OSD使用的6800:7300端口范围,命令如下:
# sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT
# iptables-save
# yum update –y
更新完成后需要重启
# sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
根据自己的版本修改,将rpm-后面修改成需要的ceph版本,将el7修改成Linux发行版本(如 el6 为 CentOS 6 、 el7 为 CentOS 7 、 rhel6 为 Red Hat 6.5 、 rhel7 为 Red Hat 7 、 fc19 是 Fedora 19 、 fc20 是 Fedora 20)
# vim /etc/yum.repos.d/ceph-deploy.repo (这里如果是ceph.repo,后面ceph-deploy install 时执行会报错,你可以试试)
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-kraken/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
# yum install -y ceph-deploy ntp
将{username}改为自己的用户
# ssh user@ceph-server
# sudo useradd -d /home/{username} -m {username}
# sudo passwd {username}
# echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username}
# sudo chmod 0440 /etc/sudoers.d/{username}
在admin节点执行
# ssh-keygen
# ssh-copy-id admin
# ssh-copy-id node1
# vi ~/.ssh/config
Host node1
Hostname node1
User {username}
Host node2
Hostname node2
User {username}
Host node3
Hostname node3
User {username}
这里我只有node1
所以就填
Host node1
Hostname node1
User root
# sudo yum install yum-plugin-priorities
# mkdir my-cluster
# cd my-cluster
在某些发行版(如 CentOS )上,执行 ceph-deploy 命令时,如果你的 Ceph 节点默认设置了 requiretty 那就会遇到报错。可以这样禁用此功能:执行 sudo visudo ,找到 Defaults requiretty 选项,把它改为 Defaults:ceph!requiretty ,这样 ceph-deploy 就能用 ceph 用户登录并使用 sudo 了。
## 这里我没有配置,因为我在配置文件中并没有找到这个选项,并且后面执行也没有报错
# ceph-deploy purgedata {ceph-node} [{ceph-node}]
# ceph-deploy forgetkeys
用下列命令可以连 Ceph 安装包一起清除:
# ceph-deploy purge {ceph-node} [{ceph-node}]
在my-cluster目录下执行这条命令
# ceph-deploy new admin
在当前目录会出现一个ceph的配置文件,一个monitor米要换和一个日志文件
在配置文件中的global下添加
osd pool default size = 2
官方文档是这样写的,我自己写的是osd_pool_default_size
public network = {ip-address}/{netmask}
# ceph-deploy install admin node1
如果报这个错误 [ceph_deploy][ERROR ] RuntimeError: NoSectionError: No section: ‘Ceph’
可以将ceph.repo改名为ceph-deploy.repo来解决这个问题
# ceph-deploy mon create-initial
完成上述操作后,当前目录会出现这些秘钥环
# ls *keying
admin.client.admin.keyring
admin.bootstrap-osd.keyring
admin.bootstrap-mds.keyring
admin.bootstrap-rgw.keyring
(只有在安装 Hammer 或更高版时才会创建 bootstrap-rgw 密钥环)
如果此步失败并输出类似于如下信息 “Unable to find /etc/ceph/ceph.client.admin.keyring”,请确认 ceph.conf 中为 monitor 指定的 IP 是 Public IP,而不是 Private IP。
则需要执行ceph-deploy purge admin node1清除安装,修改public ip,在执行刚刚的操作
这里用的是目录而非整块硬盘
分别在admin和node1节点上给OSD守护进程创建一个目录
并且给予权限(我安装时不给权限报错了)
[root@admin ~]# sudo mkdir /var/local/osd0
[root@admin ~]# chmod 777 /var/local/osd0
[root@node1 ~]# sudo mkdir /var/local/osd1
[root@node1 ~]# chmod 777 /var/local/osd1
# ceph-deploy osd prepare admin:/var/local/osd0 node1:/var/local/osd1
# ceph-deploy osd activate admin:/var/local/osd0 node1:/var/local/osd1
这样每次执行ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring
# ceph-deploy admin admin-node node1
# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
# ceph health