【Ceph学习之一】Centos7上部署Ceph存储集群以及CephFS的安装

             Ceph已然成为开源社区极为火爆的分布式存储开源方案,最近需要调研Openstack与Ceph的融合方案,因此开始了解Ceph,当然从搭建Ceph集群开始。

        我搭建机器使用了6台虚拟机,包括一个admin节点,一个monitor节点,一个mds节点,两个osd节点,一个client节点。机器的配置是:

> lsb_release -a

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.1.1503 (Core) 
Release:	7.1.1503
Codename:	Core
> uname -r

3.10.0-229.el7.x86_64
下面开始逐步介绍。

0.集群安装前的准备工作
a)文件系统采用官方推荐的xfs(brtfs)
>df  -T
>umount -l /data(去掉挂载点)
>mkfs.xfs -f /dev/vdb(强制转换文件系统)
>mount /dev/vdb /data(重新挂载)
b)规范系统主机名

> hostnamectl set-hostname {name}
c)添加hosts文件实现集群主机名与主机名之间相互能够解析(host 文件添加主机名不要使用fqdn方式)

d)选择合适的内核版本: http://docs.ceph.org.cn/start/os-recommendations
> lsb_release -a 
> uname -r

0.1 安装ceph部署工具:ceph-deploy
把软件包源加入软件仓库。用文本编辑器创建一个YUM(Yellowing Updater,Modified)库文件,其路径/etc/yum.repos.d/ceph.repo。例如:
> sudo vim /etc/yum.repos.d/ceph.repo
把如下内容粘帖进去,用 Ceph 的最新主稳定版名字替换   {ceph-stable-release}   (如   firefly   ),用你的Linux发行版名字替换   {distro}   (如   el6   为 CentOS 6 、   el7   为 CentOS 7 、   rhel6   为 Red Hat 6.5 、   rhel7   为 Red Hat 7 、   fc19   是 Fedora 19 、   fc20   是 Fedora 20 )。最后保存到 /etc/yum.repos.d/ceph.repo   文件中。

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-{ceph-release}/{distro}/noarch 
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

更新软件库并安装ceph-deploy:
> sudo yum update && sudo yum install ceph-deploy

0.2 每台 ssh-copy-id 完成这些服务器之间免ssh密码登录;

注:很多资料说是用ssh-copy-id,笔者尝试并不work,就将admin的key添加到其他机器上去即可。


0.3 配置ntp服务
# yum -y install ntp ntpdate ntp-doc
# ntpdate 0.us.pool.ntp.org
# hwclock --systohc
# systemctl enable ntpd.service
# systemctl start ntpd.service

0.4 关闭防火墙或者开放 6789/6800~6900端口、关闭SELINUX
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
打开 Ceph 需要的端口
# yum -y install firewalld
# firewall-cmd --zone=public --add-port=6789/tcp --permanent
# firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent
# firewall-cmd --reload

1.集群角色分配:
10.221.83.246   ceph-adm-node
10.221.83.247   ceph-mon-node
10.221.83.248   ceph-mds-node
10.221.83.249   ceph-osd-node1
10.221.83.250   ceph-osd-node2
10.221.83.251   ceph-client-node


2.部署monitor服务
2.1 创建目录
mkdir  -p  ~/my-cluster
cd  ~/my-cluster
hints: ceph-deploy会把文件输出到当前目录,所以请确保在此目录下执行ceph-deploy
2.2 创建monitor节点:
>ceph-deploy new  ceph-mon-node
hints 当前目录下ls会有一个Ceph配置文件、一个monitor密钥环和一个日志文件
>ceph.conf >ceph.log >ceph.mon.keyring
2.3 修改副本数
把Ceph配置文件的默认副本数从3改成2,这样只有两个osd也能达到active+clean状态,把下面这行加入到[global]段:
> osd pool default size = 2
2.4 在所有节点安装ceph
>ceph-deploy install ceph-adm-node ceph-mon-node ceph-mds-node ceph-osd-node1 ceph-osd-node2 ceph-client-node
2.5 安装ceph monitor
>ceph-deploy mon create ceph-mon-node

解决方法: 通过"hostnamectl set-hostname {name}"命令将所有主机名设置成与/etc/hosts里面对应的主机名一致。
2.6 收集各个节点的keyring文件
>ceph-deploy gatherkeys ceph-mon-node

3.部署osd服务
3.1 添加osd节点(所有osd节点执行)
ssh ceph-osd-node{id}
mkdir -p /var/local/osd{id}
exit
3.2 激活osd
#创建osd
ceph-deploy osd prepare ceph-osd-node1:/var/local/osd1  ceph-osd-node2:/var/local/osd2 
#激活osd
ceph-deploy osd activate ceph-osd-node1:/var/local/osd1 ceph-osd-node2:/var/local/osd2 

prepare->activate会出现上述问题,主要问题是:
根本就没有命令:systemctl enable  ceph-osd@0.service 
应该是:systemctl status/start  ceph-osd@0.service
解决方案,直接create来代替prepare和activate命令:
ceph-deploy osd create ceph-osd-node1:/var/local/osd1 ceph-osd-node2:/var/local/osd2 

查看状态
ceph-deploy osd list ceph-osd-node1 ceph-osd-node2
[ceph-osd-node1][INFO  ] Running command: /usr/sbin/ceph-disk list
[ceph-osd-node1][INFO  ] ----------------------------------------
[ceph-osd-node1][INFO  ] ceph-0
[ceph-osd-node1][INFO  ] ----------------------------------------
[ceph-osd-node1][INFO  ] Path           /var/lib/ceph/osd/ceph-0
[ceph-osd-node1][INFO  ] ID             0
[ceph-osd-node1][INFO  ] Name           osd.0
[ceph-osd-node1][INFO  ] Status         up
[ceph-osd-node1][INFO  ] Reweight       1.0
[ceph-osd-node1][INFO  ] Active         ok
[ceph-osd-node1][INFO  ] Magic          ceph osd volume v026
[ceph-osd-node1][INFO  ] Whoami         0
[ceph-osd-node1][INFO  ] Journal path   /var/local/osd1/journal
[ceph-osd-node1][INFO  ] ----------------------------------------
[ceph-osd-node2][INFO  ] Running command: /usr/sbin/ceph-disk list
[ceph-osd-node2][INFO  ] ----------------------------------------
[ceph-osd-node2][INFO  ] ceph-1
[ceph-osd-node2][INFO  ] ----------------------------------------
[ceph-osd-node2][INFO  ] Path           /var/lib/ceph/osd/ceph-1
[ceph-osd-node2][INFO  ] ID             1
[ceph-osd-node2][INFO  ] Name           osd.1
[ceph-osd-node2][INFO  ] Status         up
[ceph-osd-node2][INFO  ] Reweight       1.0
[ceph-osd-node2][INFO  ] Active         ok
[ceph-osd-node2][INFO  ] Magic          ceph osd volume v026
[ceph-osd-node2][INFO  ] Whoami         1
[ceph-osd-node2][INFO  ] Journal path   /var/local/osd2/journal
[ceph-osd-node2][INFO  ] ----------------------------------------
3.3 统一配置用ceph-deploy把配置文件和admin密钥拷贝到管理节点和ceph节点,这样每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring了
> ceph-deploy admin ceph-*(all ceph node)
> 例如:ceph-deploy admin ceph-osd-node1 ceph-osd-node2 ceph-mon-node ceph-mds-node ceph-client-node
3.4 修改ceph.client.admin.keyring权限:
>   chmod +r /etc/ceph/ceph.client.admin.keyring
3.5 检查是否成功:
> 将keyring文件移动到到/etc/ceph下面:mv *.keyring /etc/ceph
> ceph health
等peering完成后,集群应该达到active+clean状态。
3.6 查看osd状态
> ceph-disk activate-all

4.部署msd服务
> ceph-deploy mds create ceph-mds-node
报错:

原因在mds机器ceph-mds-node上面没有找到ceph-mds@ceph-mds-node.service。
解决方案在ceph-mds-node机器上: cp  ceph-mds@.service   ceph-mds@ceph-mds-node.service

5.集群验证
5.1 验证mds节点
> ps -ef | grep mds
> ceph mds stat

> ceph mds dump
5.2 验证mon节点
> ps -ef | grep mon
5.3 验证osd节点
> ps -ef | grep osd
5.4 集群状态
> ceph -s

以上基本上完成了ceph存储集群的搭建,那么现在就需要进一步对特定的存储方式进行配置。

6.创建ceph文件系统
6.1 在管理节点,通过ceph-deploy把ceph安装到ceph-client节点上
> ceph-deploy install ceph-client-node
6.2 创建文件系统http://docs.ceph.org.cn/cephfs/createfs/
创建之前
> ceph osd pool create cephfs_data <pg_num>
> ceph osd pool create cephfs_metadata <pg_num>
> ceph fd new <fs_name> cephfs_metadata cephfs_data
其中:<pg_num> = 128 , <fs_name> = cephfs
创建之后
> ceph fs ls

> ceph mds stat

> ceph -s


7.挂载ceph文件系统
7.0 在管理节点使用ceph-deploy拷贝ceph配置文件以及ceph.client.admin.keyring到ceph-client-node上面:
>ceph-deploy admin ceph-client-node
修改keyring文件权限:
> sudo chmod +r /etc/ceph/ceph.client.admin.keyring
monitor ip: 10.221.83.247

7.1  内核驱动挂载Ceph文件系统
7.1.1 创建挂载点
> sudo mkdir -p /mnt/mycephfs1
7.1.2 存储密钥
cat /etc/ceph/ceph.client.admin.keyring 
将key对应的值复制下来保存到文件:/etc/ceph/admin.secret中。
7.1.3 挂载
sudo mount -t ceph 10.221.83.247:6789:/  /mnt/mycephfs1 -o name=admin,secretfile=/etc/ceph/admin.secret


7.1.4 取消挂载
> sudo umount -l /mnt/mycephfs1

7.2 用户控件挂载Ceph文件系统
7.2.1 创建挂载点
> sudo mkdir -p /mnt/mycephfs2
7.2.2 安装ceph-fuse
> sudo yum install -y ceph-fuse
7.2.3 挂载
> sudo ceph-fuse -m 10.221.83.247:6789  /mnt/mycephfs2
7.2.4 取消挂载
> fusermount -u /mnt/mycephfs2/

其他:
清理机器上的ceph相关配置:
停止所有进程:sudo stop ceph-all
卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]
删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-data}]
删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-data}]
删除key:ceph-deploy forgetkeys

卸载ceph-deploy管理:
yum -y remove ceph-deploy


Author:忆之独秀

Email:leaguenew@qq.com

注明出处:http://blog.csdn.net/lavorange/article/details/52052520



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以按照以下步骤在CentOS 7上安装Ceph: 1. 首先,确保您的系统已经更新到最新版本: ``` sudo yum update -y ``` 2. 接下来,在所有节点上添加Ceph存储库。创建一个名为 `/etc/yum.repos.d/ceph.repo` 的文件,并将以下内容添加到文件中: ``` [ceph] name=Ceph packages for $basearch baseurl=https://download.ceph.com/rpm-nautilus/el7/$basearch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://download.ceph.com/rpm-nautilus/el7/SRPMS enabled=0 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc ``` 3. 保存并退出文件后,运行以下命令以安装Ceph软件包: ``` sudo yum install -y ceph ceph-mon ceph-osd ceph-mds ``` 4. 在主监视器节点上创建一个初始监视器密钥环并启动监视器服务: ``` sudo ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' sudo ceph-authtool --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow' sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring sudo chmod 0644 /etc/ceph/ceph.mon.keyring sudo systemctl enable ceph-mon.target sudo systemctl enable ceph-mon@{hostname}.service sudo systemctl start ceph-mon@{hostname}.service ``` 请将 `{hostname}` 替换为您的主监视器节点的主机名。 5. 在OSD节点上创建 OSD 数据目录,并将其所有权更改为 `ceph` 用户: ``` sudo mkdir /var/lib/ceph/osd/ceph-{osd-id} sudo chown ceph:ceph /var/lib/ceph/osd/ceph-{osd-id} ``` 请将 `{osd-id}` 替换为您的 OSD 节点的 ID。 6. 在每个 OSD 节点上运行以下命令以将 OSD 添加到集群中: ``` sudo ceph osd create sudo mkdir /var/lib/ceph/osd/ceph-{osd-id} sudo chown ceph:ceph /var/lib/ceph/osd/ceph-{osd-id} sudo ceph-osd -i {osd-id} --mkfs --mkkey sudo ceph auth add osd.{osd-id} osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-{osd-id}/keyring sudo systemctl enable ceph-osd@{osd-id}.service sudo systemctl start ceph-osd@{osd-id}.service ``` 请将 `{osd-id}` 替换为每个 OSD 节点的 ID。 7. 最后,在主监视器节点上运行以下命令以添加元数据服务器(MDS): ``` sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --import-keyring /etc/ceph/ceph.mon.keyring sudo chmod +r /etc/ceph/ceph.client.admin.keyring sudo systemctl enable ceph-mds.target sudo systemctl enable ceph-mds@{hostname}.service sudo systemctl start ceph-mds@{hostname}.service ``` 请将 `{hostname}` 替换为您的主监视器节点的主机名。 完成上述步骤后,您已经成功在CentOS 7上安装和配置了Ceph。请确保按照集群规划和需求进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值