如何从零安装Ceph分布式存储|CentOS环境
版本信息
具体安装之前对操作系统做如下限制,其它版本的操作系统不保证能够安装成功。
操作系统:CentOS 6.5
Ceph版本号:Hammer V10.2.3
设备信息
本安装教程假设有4台服务器(或者虚拟机),1台作为管理节点,另外3台作为存储节点。当然,也可以用存储节点中的一台作为管理节点。具体地址和主机名称如图所示。
需要在各个服务器上添加解析,方法是打开hosts文件,添加如下内容:
打开hosts文件的方法:
# vim /etc/hosts
192.168.1.100 ceph-u0-l0
192.168.1.101 ceph-u0-m0
192.168.1.102 ceph-u0-r0
192.168.1.50 admin
安装ceph-deploy
ceph-deploy是Ceph的远程部署工具,可以在管理节点实现分布式部署。
1. 配置Ceph安装源
使用官方YUM源,在yum库新建一个文件(vim /etc/yum.repos.d/ceph.repo),内容如下:
[ceph-noarch] name=Ceph noarch packages baseurl=http://ceph.com/ceph/rpm-jewel/el6/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
由于某些原因,官方源速度可能比较慢,可以使用国内的安装源,比如阿里:
[ceph-x86] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el6/x86_64 enabled=1 gpgcheck=0 type=rpm-md
2. 更新软件源,并安装ceph-deploy
yum update yum install ceph-deploy -y
安装NTP
安装NTP,用于集群节点的时间同步。
apt-get install ntp
确保SSH服务已被安装
可能需要安装SSH服务,如果已经安装则忽略该步骤。
sudo apt-get install openssh-server
创建ceph部署账户
在每个存储节点上创建ceph账户及ssh访问
每个节点上创建ceph用户
sudo useradd -d /home/cephd -m cephd sudo passwd cephd
确保具有sudo权限
echo "cephd ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephd sudo chmod 0440 /etc/sudoers.d/cephd
配置无密码访问
配置管理节点可以实现对其它节点的无密码访问,在管理节点执行如下命令。
ssh-keygen
所有提示采用默认配置,直接回车。
生成公钥/私钥对,并拷贝到其它节点
ssh-copy-id cephd@ceph-u0-m0 ssh-copy-id cephd@ceph-u0-r0 ssh-copy-id cephd@ceph-u0-l0
ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中(~/.ssh/authorized_keys)
默认采用cephd用户,修改(新建)/root/.ssh/config文件,增加如下内容:
Host ceph-u0-l0 Hostname ceph-u0-l0 User cephd Host ceph-u0-m0 Hostname ceph-u0-m0 User cephd Host ceph-u0-r0 Hostname ceph-u0-r0 User cephd
通过ssh命令测试一下,是否可以无密码访问。
ssh ceph-u0-m0
创建集群
创建ceph集群
本集群部署情况,为ceph-u0-m0部署一个monitor节点,同时在ceph-u0-l0和ceph-u0-r0上各部署一个osd节点。
在管理节点的/root目录下执行:
mkdir my-cluster cd my-cluster
如果需要(新安装的系统通常不需要),部署之前确保ceph每个节点没有ceph数据包(先清空之前所有的ceph数据,如果是新装不用执行此步骤,如果是重新部署的话也执行下面的命令)
[root@ceph-deploy]# ceph-deploy purge ceph-deploy ceph-u0-m0 ceph-u0-l0 ceph-u0-r0 [root@ceph-deploy]# ceph-deploy purgedata ceph-deploy ceph-u0-m0 ceph-u0-l0 ceph-u0-r0 [root@ceph-deploy]# ceph-deploy forgetkeys
如果是干净环境,直接执行如下命令,该命令在my-cluster文件夹生成集群必须的文件。
ceph-deploy new ceph-u0-l0
修改ceph.conf配置文件
[global] fsid = c70a17e3-f677-46cb-8744-b628592d69d6 mon_initial_members = ceph-u0-l0 mon_host = 192.168.32.2 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true osd pool default size = 3 public network = 192.168.1.0/24 [osd] osd journal size = 20000
安装软件包
admin节点向各节点安装ceph
ceph-deploy install ceph-u0-l0 ceph-u0-m0 ceph-u0-r0 --repo-url=http://eu.Ceph.com/debian-jewel/ --gpg-url=http://eu.ceph.com/keys/release.asc
添加初始监控节点并收集密钥
ceph-deploy mon create-initial
此时,查看my-cluster目录多了下面几个文件
ceph.bootstrap-mds.keyring ceph.bootstrap-osd.keyring ceph.bootstrap-rgw.keyring ceph.client.admin.keyring
添加osd节点
OSD是存储数据的单元,新建完集群后需要添加OSD节点
ceph-deploy osd prepare ceph-u0-l0:sdb ceph-u0-m0:sdb ceph-u0-r0:sdb
ceph-deploy osd activate ceph-u0-l0:sdb1 ceph-u0-m0:sdb1 ceph-u0-r0:sdb1
复制ceph配置文件及密钥到mon、osd节点
ceph-deploy admin ceph-u0-l0 ceph-u0-m0 ceph-u0-r0
确保有正确的ceph.client.admin.keyring权限
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
查看集群运行状态
ceph -s
状态大致如图所示,根据实际配置略有不同。
本文转自微信公众号 itworld123