Ceph是一个开源的存储平台,它提供高性能,可靠性和可扩展性。 它是一个免费的分布式存储系统,它提供了对象,块和文件级存储的接口,而没有单点故障。
这是Ceph教程系列的第三部分。 在第一部分中 ,我向您展示了如何在CentOS7上构建多个节点的“Ceph群集”。 第二部分是介绍如何在CentOS 7上使用Ceph作为块设备的指南。在第三部分中,我将介绍如何将Ceph作为文件系统安装在CentOS 7上作为客户机。
先决条件
- Ceph簇 - 1个Ceph-admin节点,1个Moinitor节点(ceph-mon),3个Ceph-osd节点( 见第1部分 )。
- Client2 - CentOS 7服务器( 参见第2部分 )。
- 根权限
第1步 - 配置Client2节点
在第一步中,我们将对客户端进行基本安装。 这与我们在其他集群节点上使用的过程相同。 我们将在框上创建一个名为cephuser的新用户,与ntpdate同步时间,为cephuser等配置sudo密码。所以让我们开始...
使用SSH作为root用户连接到client2节点:
ssh root@client2
我们使用root访问登录服务器,现在我们可以创建新的cephuser。
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
创建新用户后,通过在sudoers目录中创建新的配置文件,为用户启用sudo无密码。
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
接下来,安装NTP,ntpdate命令行工具和open-vm工具。 然后更新和同步系统时间与ntpdate。
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
禁用SELinux并编辑主机的文件。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
将主机配置粘贴到下面:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2
保存主机文件并退出编辑器。 现在尝试ping ceph-admin节点来测试连接和主机名设置。
ping -c 3 ceph-admin
您应该看到ceph-admin节点IP地址作为结果。
第2步 - 在Client2节点上安装Ceph Common Utilities
可以从Ceph存储库安装ceph-common软件包。 它包含Ceph实用程序来安装和与Ceph存储集群进行交互。
在我们继续安装ceph-common软件包之前,我们必须添加epel-repository和Ceph存储库。
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
更新系统并安装Ceph常用工具。
sudo yum -y update
sudo yum -y install ceph-common
接下来,我们必须在ceph-admin节点上添加配置。
第3步 - 配置Ceph管理节点
在此步骤中,我们将配置集群,以便我们可以使用ssh密钥(没有密码)从admin连接到client2节点。
以root身份连接到ceph-admin节点,然后使用su登录到cephuser。
ssh root@ceph-admin
su - cephuser
编辑ssh配置文件并定义一个新的client2配置部分。
vim ~/.ssh/config
在文件末尾粘贴以下配置:
Host client2
Hostname client2
User cephuser
接下来,将客户机节点的主机配置行添加到ceph-admin节点上的/ etc / hosts文件中。
sudo vim /etc/hosts
粘贴文件末尾的主机配置。
10.0.15.16 client2
保存主机文件并退出编辑器。
现在将ceph-admin节点的ssh密钥添加到client2节点。
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
已添加ceph-admin密钥。 现在我们可以访问client2节点而没有来自ceph-admin节点的密码。
ssh client2
第4步 - 创建Ceph MetaData服务器
如果要运行并挂载CephFS,则需要一个ceph元数据服务器(Ceph MDS)。 Ceph MDS正在OSD节点上运行。 我们可以使用ceph-admin节点的ceph-deploy命令将Ceph MDS安装到OSD节点。
登录到ceph-admin节点并成为cephuser。
ssh root@ceph-admin
su - cephuser
转到集群目录并运行ceph-deploy命令来创建新的ceph元数据服务器(Ceph MDS)。 我将使用'osd1'节点作为元数据服务器。
cd cluster/
ceph-deploy mds create osd1
在osd1节点上创建MDS服务器后,我们必须使用ssh连接到节点。
ssh osd1
接下来,为MDS服务器创建新的池,至少我们需要2个池 - cephfs_data和cephfs_metadata。
在'osd1'节点上创建新的池。
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
新的游泳池已经准备好了。 现在我们可以使用命名池创建新的文件系统:cephfs_data和cephfs_metadata。
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =文件系统名称。
当您完成此步骤没有错误,然后使用以下命令检查MDS服务器。
检查MDS服务器列表:
ceph fs ls
现在,您可以看到文件系统名称为'cephfs',元数据池为'cephfs_metadata',数据池为'cephfs_data'。
显示MDS状态:
ceph mds stat
在继续操作之前,请确保MDS已启动并处于活动状态。
第5步 - 使用内核驱动程序安装CephFS
Ceph MDS服务器已在'osd1'节点上创建。 现在我们可以使用CephFS。 在这个步骤中,我们将在client2节点上安装CephFS作为具有mount命令的文件系统。
在我们开始下一步之前,我们需要从客户端2节点上的ceph存储库安装ceph-fuse。
sudo yum -y install ceph-fuse
安装完成后,复制用户的密钥。 在我们的默认配置中,启用了cephx认证。 默认用户为“admin”。
使用scp命令将密钥从MDS服务器节点'osd1'复制到client2节点,然后更改密钥的权限。
ssh cephuser@osd1 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
接下来,创建一个新的cephfs目录并将CephFS安装到该目录。
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
注意:
默认用户名= admin
secretfile = ceph.key从MDS节点osd1
您将在列表中看到一个类型为'ceph'的新文件系统。
sudo df -hT
要卸载文件系统,请使用umount命令实用程序。
umount /mnt/cephfs
第6步 - 将CephFS安装为保险丝
在我们成功安装CephFS作为文件系统之后,我们将CephFS作为Fuse(US系统在USErspace中)安装。 对于这种设置,我们需要从监视节点'mon1'复制配置文件'ceph.conf'和密钥。
在client2节点上创建一个新的ceph目录并复制配置文件和密钥。
sudo mkdir -p /etc/ceph/
sudo scp root@mon1:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp root@mon1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
更改文件的权限。
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
接下来,创建一个新的保险丝目录,并将CephFS作为Fuse安装到'/ mnt / fuse'目录。
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
确保没有错误,并检查是否安装了CephFS。
sudo df -hT
要卸载CephFS保险丝,请使用kill命令。
sudo ps -aux | grep ceph-fuse
kill -2 PID
第7步 - 使用fstab安装CephFS
在这一步中,我们将永久安装带有fstab的CephFS。 我们将使用mount命令编辑/ etc / fstab并添加使用内核驱动程序安装CephFS的配置。
编辑fstab文件。
sudo vim /etc/fstab
在文件末尾粘贴以下配置:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
保存文件并退出vim。
使用mount -a命令从fstab装载所有磁盘,然后列出所有可用的磁盘。
sudo mount -a
sudo df -hT
最后,重新启动系统并检查可用磁盘,以确保配置重新启动安全。
reboot
sudo df -hT
您将看到CephFS已经使用fstab自动安装。