快速搭建Ceph存储系统

2020-05-20 00:33河南刘京义
网络安全和信息化 2020年5期
关键词:配置文件命令客户端

■ 河南 刘京义

编者按:Ceph是新一代自由软件分布式文件系统,具有良好的可扩展性(PB级别以上)、高性能和高可靠性,Ceph拥有数据与元数据的分离,动态的分布式的元数据管理,可靠统一的分布式对象存储机制。Ceph是一个高可用、易于管理、开源的分布式存储系统,可以在一套系统中同时提供对象存储、块存储以及文件存储服务。

以简单的实例来说明如何搭建Ceph分布式存储。

规划实验环境

这里使用了四台主机,分别安装了CentOS 7.X系统,其IP从1 72.16.1.101到172.16.1.10 4,一台作为管理节点使用,名称为“server1”,两台作为数据存储节点,名称分别为“server2”和“server3”。一台作为客户端使用。名称为“cephClient”。在管理主机上执行“hostnamectl set-hostname server1”命令,修改其主机名称。

执行“useradd cephuse r”,“echo“cephuser”|pass wd --stdin cephuser”命令,创建名为“cephuser”的账户,其密码为“cephuser”,用来管理主节点。执行“cat<>/etc/hosts”命令,在编辑界面中输入“172.16.100.101 server1”,“172.16.100.102 server2”,“172.16.100.103 server3”,“172.16.100.104 cephclient”,“END”行,设置主机名称和IP的映射信息。执行“echo"cephuser ALL=(root)NOPASSWD:ALL" >>/etc/sudoers.d/cephuser”,“chm od 0440/etc/sudoers.d/cephuser”命令,赋予“cephuser”用户Root权限,使其能以Root权限运行所有命令。在其他的主机上分别执行以上命令,执行同样的操作,来配置基础的环境参数。注意,对于客户端主机来说,不需要创建专用账户,使用“root”账户即可。

配置NTP服务

在“server1”上执行“yum -y install ntp ntpdate”命令,安装NTP组件,将“server1”作为时间服务器使用。执行“sed -i'/^server/s/^/#/g'/etc/ntp.conf”,“sed -i'25aserver 127.127.1.0 fudge 127.127.1.0 stratum 8'/etc/ntp.conf”命令,配置NTP参数,执行“systemctl start ntpd”,“systemctl enable ntpd”命令,重启并激活NTP服务。

执行“netstat -utpln|grep 123” 命令,查看NTP服务端口开启状态。在其他主机上执行“yum -y install ntpdate”,“/usr/sbin/ntpdate 172.16.1.101”,“echo "/usr/sbin/ntpdate 172.16.1.101" >>/etc/rc.l ocal”,“chmod +x/etc/rc.local”命令,根据“server1”来同步时间,并在开机时自动加载时间同步命令,并为其设置执行权限。

在管理节点安装Ceph

在“server1”上执行“y um -y install yumutils”命令,来安装YUM的管理工具。执行“yum-config-manager--add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/”命令,来配置YUM管理器,添加指定的源。执行“ls/etc/yum.repos.d/”命令,查看对应的源信息。执行“yum-y install epel-release--nogpgcheck”命令,来安装对应的源,并且不检查公钥。执行“cat <>/etc/yum.repos.d/ceph.repo”命令,来追加Ceph源。

输入如图1所示内容,在其他主机上分别执行以上命令,来配置源信息。

在其他主机上安装Ceph

图1 配置源信息

在“server1”上执行“su -cephuser”,“mkdir cephdata”,“cd cephdata”命令,切换到“cephuser”账户环境,并在其家目录中创建对应的目录,这样更便于管理。在该目录中执行“sudo yum -y install ceph-deploy”,“sudo yum -y install ceph–nogpgcheck”命令,安装Ceph主程序和管理工具。

如果安装出现异常,可以执行“sudo rm -rt/etc/yum.repos.d/centos.repo”,“sudo/etc/yum.repos.d/bak/*/etc/yum.repos.d/”命令,使用epel源执行安装即可。之后在“server2”和“server3”上分别执行以上命令,所不同的是还要执行“sudo yum -y install deltarpm”命令,来安装“deltarpm”工 具,避免出现启动失败的情况。在客户端主机上执行“yum-y install yum-pluginpriorities”。“yum -y install ceph ceph-radosgw--nogpgcheck”命令,安装YUM优先级插件,Ceph主程序和Ceph连接的网关程序。

管理和配置存储节点

在“server1”上进入Ceph安装目录,执行“sshkeygen -t rsa”命令,生成所需的秘钥对。执行“ssh-copy-id cephuser@server1”,“ssh-copyid cephuser@server2”,“ssh-copy-id cephuser@server3”,“ssh-copy-id root@cephclient”命令,将公钥复制到所有的主机上。执行“cat <>/home/cephuser/.ssh/config”命令,在SSH的配置文件中追加信息,这样在执行远程管理时,可以读取该文件,来获取对应主机的名称和账户名。

输入“Host server1”,“Hostname server1”,“User cephuser”,“Host server2”,“Hostname server2”,“User cephuser”,“Host server3”,“Hostname server31”,“User cephuser”,“END”行,添 加对应的主机和账户名称。执行“chmod 644/home/cephuser/.ssh/config”命令,为该配置文件合适的权限。执行“ceph-deploy new server2 server3”命令,对数据节点进行初始化操作。如果出错的话,可以在对应的数据节点上执行“yum -y install epel-release”,“rpm -e epel-release”,“rpm -qa epel-release”命令,安装对应的epel源,之后进行安装。

如果依然出错,可以根据出错提示信息,执行“rpm -ivh/varcache/yum/x86_4/7/xxx.rpm”命令,来执行对应的安装操作,其中的“xxx”为具体的文件名称。之后在管理节点执行初始化操作,就可以顺利安装了。注意,如果在配置过程中出现问题,需要重新创建集群或重新安装Ceph,可以执行“ceph-deploy purge server2 server3”,“cephdeploy purgedata server2 server3”,“ceph-deploy forgetkeys &&rm ceph.*”命令,将Ceph集群中的数据全部清除。

在“server1”上执行“cat <>/home/cephuser/cephdata/ceph.conf”命令,输入“osd pool default size=2”,“END”行,向Ceph主配置文件中写入参数,设置OSD节点数量为2。执行“ceph-deploy install server2 server3”命令,在目标主机上安装Ceph。执 行“ceph-deploy mon create-initial”命令,初始化监控节点。在数据节点上执行“netstat -utpln”命令,可以看到已经开启了TCP 6789端口,说明MON进程已经启动。对于数据节点来说,其配置文件位于“/etc/ceph/”目录中,会自动从管理节点同步配置信息。

配置OSD存储设备

执行“ssh cephuser@server2”命令,连接到指定的数据节点。执行“sudo fdisk/dev/sdb”和“sudo partx -a/dev/sdb”命令,对指定的磁盘进行分区处理。执行“sudo mkfs -t xfs/dev/sdb1”命令,创建所需的分区。执行“sudo mkdir/var/local/osd0”命令,挂载OSD存储路径。执行“sudo vi/etc/fstab”命令,输入“/dev/sdb1/var/local/osd0 xfs defaults 0 0”行,保存对应的文件系统信息。

执行“sudo mount -a”命令,重新加载“/etc/fstab”中的所有信息。执行“sudo chmod 777/var/local/osd0”,“sudo chown ceph:ceph/var/local/osd0/”命令,为目标路径设置访问权限和属主信息。执行“ls -ld/var/local/osd0/”,“df -hT”命令,查看对应的路径和磁盘信息。执行“exit”命令退出。针对“server3”节点执行相同的配置操作。

注册Node数据节点

在“server1”上执行“ceph-deploy osd prepare server2:/var/local/osd0 server3:/var/local/osd1”命令,针对数据节点初始创建OSD节点,并指定节点存储文件位置。对于OSD节点来说,其“/var/local/osd*/”存储数据实体的目录权限必须为777,并且属主和属组必须为“ceph”。执行“chmod +r/home/cephuser/cephdata/ceph.client.admin.keyring”命令,针对管理客户端的Key文件设置读取权限。

执行“ceph-deploy osd activate server2:/var/local/osd0 server3:/var/local/osd1”命令,激活两个OSD节点。在数据节点上执 行“netstat -utpln”命令,会显示和OSD相关的端口信息。执行“ceph-deploy admin server2 server3”命令,将管理密钥复制到数据节点。执行“sudo cp/home/cephuser/cephdata/ceph.client.admin.keyring/etc/ceph/”,“sudo cp/ho me/cephuser/cephdata/ceph.conf/etc/ceph/”命令,将管理Key文件和Ceph主配置文件复制到目录。

查看Ceph群集信息

执行“ceph quorum_status --format jsonpretty”命令,查看Ceph群详细信息。执行“ceph health”和“ceph -s”命令,查看Ceph群集的状态信息。如果出现和时间有关的错误信息,可以执行“vi ceph.conf”命 令,追加“mon clock drift warn backoff=30”行。之 后执行“sudo rm -rf/etc/ceph/ceph.conf”,“sudo cp/home/cephuser/cephdata/ceph.conf/etc/ceph/”,“ceph-deploy–overwriteconf config push server2 server3”命令,将配置文件复制到指定路径,并推送给数据节点。

在数据节点执行“systemctrl restart cephmon.target”命令,重启MON服务。或者在管理节点重启NTP服务,之后在数据节点执行时间同步,也可以解决该问题。执行“ceph osd tree”命令,查看OSD存储信息。执行“ssh cephuser@server2”命令,远程连接到指定的数据节点。执行“df-hT |grep sdb1”命令,查看磁盘使用情况。执行“du-sh/var/local/osd0/”命令,查看指定的设备信息。执行“cat/etc/ceph/ceph.conf”命令,查看Ceph主配置文件信息。

配置元数据节点

执行“ceph-deploy mds create server2”命 令,在“server2”上创建元数据节点,执行“ssh cephuser@server2”,“netstat -utpln|grep 68”,“exit”命令,远程查看指定数据节点的端口信息,可以看到MDS进程的端口处于开启状态。

注意,在执行执行上述命令时,必须切换到Ceph安装目录中,便于其找到所需的Ceph配置文件。

如果管理节点中的Ceph安装路径下的“ceph.conf”主配置文件发生了变化,可以 执 行“ceph-deploy–overwrite-conf config push server2 server3”命令,将Ceph主配置文件推送给数据节点。

配置和测试Ceph客户端

在“server1”上执行“ceph-deploy install ceph-client”命令,针对客户端主机安装Ceph客户端程序。执行“ceph-deploy admin cephclient”命 令,将管理密钥推动给客户端。执行“ssh root@cephclient”,“chmod +r/etc/ceph/ceph.client.admin.keyring”,“exit”命令,远程连接客户端,针对密钥文件文件配置读取权限。执行“ceph osd pool create cephfs_data 128”命令,创建数据存储池,其中的“128”为块的数量。

执行“ceph osd pool create cephfs_metadata 128”命令,创建元数据存储池。执行“ceph fs new cephfs cephfs_data cephfs_metadata”命令,创建文件系统。执行“ceph fs ls”命令,查看文件系统。执行“ssh root@cephclient”,“mkdir/mnt/ceph”命令,远程连接客户端,创建所需目录。执行“grep key/etc/ceph/ceph.client.admin.keyring |awk'{print $3}' >>/etc/ceph/admin.secret”命令,生成一个 Key。执 行“cat/etc/ceph/admin.secret”命 令,显示该Key的内容。

执行“mount -t ceph 172.16.1.102:6789:/ /mnt/ceph/ -o name=admin,s ecretfile=/etc/ceph/admi n.secret”命令,挂载“server2”的MON进 程,并指定Key文件。执行“df -hT |grep ceph”命令,显示目标分区信息。进入“/mnt/ceph”目录,执行“touch {1..10}.file”命令,创建所需的文件。执行“dd if=/dev/zero of=/mnt/ceph/1.file bs=1G count=1”命令,将“/dev/zero”中的无限输入写到“1.file”文件中。执行“df-hT |grep ceph”命令,显示写入信息。执行“mkdir/mnt/ceph1”,“mount -t ceph 172.16.1.103:6789://mnt/ceph1/ -o name=admin,secretfile=/e tc/ceph/admin.secret”,“df-hT |grep ceph”命令,在“server3”节点上执行类似的操作。

猜你喜欢
配置文件命令客户端
你的手机安装了多少个客户端
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
只听主人的命令
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
安装和启动Docker
互不干涉混用Chromium Edge
移防命令下达后
解析Windows10的内部命令