说明:主要是参考 http://docs.ceph.org.cn/start/这个快速安装步骤来进行的,当然也参考了很多网上的其他教程。由于对Linux系统的不熟悉,很多时间都是花在研究Linux命令上。

1 准备环境:
IP hostname 操作系统 磁盘空间 安装模块
172.16.131.180 admin-node CentOS 7.2 50G ceph-deploy,ceph-client
172.16.131.181 node1 CentOS 7.2 50G mon1,osd1,mds,radosgw
172.16.131.182 node2 CentOS 7.2 50G osd0,mon2
172.16.131.183 node3 CentOS 7.2 50G osd1,mon3
说明:
a 磁带空间尽量大一点,用VMware安装时不用立即分配所有磁带空间,如果磁盘不够再扩容就麻烦了。前段时间尝试编译ceph,编译完后好像占用了100G,扩容都扩了2次,用ceph-deploy部署不会占那么多空间,但磁盘大一点没坏处。
b 我使用的是两台物理机上的VMware各安装2台CentOS虚拟机,这4台要互相能访问,所有网络连接均使用桥接网络。
1.1 安装CentOS 7
安装ISO:CentOS-7-x86_64-DVD-1511.iso,大小:4,329,570,304 字节,MD5:C875B0F1DABDA14F00A3E261D241F63E。
SOFTWARE SELECTION选择GNOME Desktop,默认为Minimal Install,这里选其他也可以,不过安装带界面的有些操作方便些。
INSTALLATION DESTINATION没有要求,参考网上进行配置,或者自动配置。
修改root密码,为了后面方便操作和演示,设置为root,由于密码太弱了,需要点两次Done才能完成。
然后等待安装完成,安装完成后自动重启,依次输入1,2,q,yes来完成安装。
只先安装一台虚拟机,把需要统一配置的都配置好,然后用VMware克隆功能克隆出其他三台。
使用命令 cat /etc/centos-releasecat /etc/redhat-release查看操作系统版本为“CentOS Linux release 7.2.1511 (Core)”,使用命令 uname -r查看内核发行版本为“3.10.0-327.el7.x86_64”。

1.2 统一配置
a 设置静态IP:分别使用以下命令修改配置和重启网络服务以及查看IP等。IP配置好后,就可以用xshell等工具ssh登录到虚拟机进行操作。
sudo vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
sudo systemctl restart network
ip addrifconfig
ping www.baidu.com
b 安装红帽包管理工具(RPM)和包管理器优先级包:分别执行以下命令进行安装。yum安装会从网上下载rpm包,有可能会下载超时,若超时可以多执行几次。安装完成后,同样的,也可以多执行几次命令,直到所有安装项提示“nothing to do”,确保所有安装项成功安装。
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*
sudo yum install yum-plugin-priorities
说明:执行时如果报错“Another app is currently holding the yum lock; waiting for it to exit...”,执行 sudo rm -f /var/run/yum.pid命令解决,后面的部署步骤用yum来安装程序时可能会报这个错,用同样的方法解决。
c 安装NTP:使用以下命令安装NTP,安装NTP的目的是同步时间,否则每个节点时间若不同步,ceph的状态可能出现HEALTH_WARN,而不是HEALTH_OK。注意,安装过程需要输入y进行确认,也可以加上-y参数自动安装。因为不熟悉Linux,所以我选择不自动安装,先观察观察命令窗口都输出了什么,然后再安装。
sudo yum install ntp ntpdate ntp-doc
d 增加ceph用户:使用以下命令增加用户、修改密码和赋予sudo权限,创建的用户名为test,密码为Test123。官网说的是"ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。",所以提前创建好用户test,并以test部署ceph。
sudo useradd -d /home/test -m test
sudo passwd test
echo "test ALL = (root) nopASSWD:ALL" | sudo tee /etc/sudoers.d/test
sudo chmod 0440 /etc/sudoers.d/test
e 确保联通性:修改hosts文件,支持主机名解析(这里我截的是xshell里的图)。
sudo vim /etc/hosts
f 关闭防火墙并且禁止开机启动:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
g 禁用requiretty:用以下命令编辑/etc/sudoers配置文件,找到“Defaults requiretty”,修改为“#Defaults requiretty”注释掉,然后保存退出。
sudo visudo
h 关闭SELINUX:用以下命令打开配置文件,将“SELINUX=enforcing”修改为“SELINUX=disabled”(或者用命令行 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config设置),重启生效。或者用命令 sudo setenforce 0临时关闭,用命令 sestatus -v可查看SELINUX状态。
sudo vim /etc/selinux/config

1.3 克隆虚拟机并单独设置
a 配置IP和hostname:1.2的配置都做好后,就可以克隆出另外3台虚拟机。一共4台虚拟机,然后按照1.准备环境的说明进行单独配置,主要配置IP和hostname,使用以下命令修改hostname和查看hostname。由于1.2中配置了固定IP,所以可能需要进入到虚拟机里配置IP和hostname。
建议本地主机修改C:\Windows\System32\drivers\etc\hosts文件,方便操作,不用每次都输IP。
hostnamectl set-hostname node2
hostname
b 允许无密码 SSH 登录:在admin-node机器上登录test用户,然后输入 ssh-keygen生成SSH密钥对,要求输入的地方直接回车即可。然后用以下命令将公钥拷贝到其他机器。然后可以使用 ssh test@node1命令测试能否无密码登录到node1机器。
ssh-copy-id test@node1
ssh-copy-id test@node2
ssh-copy-id test@node3
然后 sudo vim ~/.ssh/config修改config文件,内容如下。这样可以直接使用命令 ssh node1登录到node1机器,而不用指定用户名,对于scp也有效。这样ceph-deploy就能用所建的用户名登录ceph节点,而无需每次执行ceph-deploy都要指定--username {username}。
Host node1
Hostname node1
User test
Host node2
Hostname node2
Host node3
Hostname node3
User test
c 配置ntp同步时间:有两种方式,一种是使用 sudo ntpdate -u cn.pool.ntp.org手动同步的方式,可以将命令写到 /etc/rc.d/rc.local里实现系统启动自动同步,同时编辑 /etc/crontab文件,添加计划任务,实现循环同步的功能,但是注意开启crontab服务,默认是没开启的。另一种方式,是开启ntpd服务,让ntpd服务去同步。这里,我选择第二种方式。
ntp在1.2中就已经统一安装了,但是每台机器都需要允许开机自启和启动ntpd服务,分别执行命令 sudo systemctl enable ntpdsudo systemctl start ntpd来完成。可用命令 systemctl is-enabled ntpdsystemctl status ntpd来查询是否允许自启和运行状态,注意后一个命令输出中也有是否允许自启的状态。
这里我配置node1作为ntp同步时钟服务器,同时node1同步网络时间,其他机器作为客户端来同步node1的时钟。另外,其他机器也选用与node1相同的网络时钟服务器作为备选同步服务器,这样,当node1宕机后,其他机器也能继续与网络时钟保持同步。
在node1机器上用命令 sudo vim /etc/ntp.conf编辑ntp.conf文件,主要修改内容如下,红框里的为修改的内容,然后用命令 sudo systemctl restart ntpd重启ntpd。
其他机器同样的修改ntp.conf文件,主要修改内容如下,然后用命令 sudo systemctl restart ntpd重启ntpd。可使用命令 ntpq -pntpstat查看同步结果,或者用命令 watch ntpq -p查看实时结果。
说明:
a 在使用ntpdate手动同步时间时,如果报错“ntpdate[12568]: the NTP socket is in use,exiting”,是因为ntpd服务正在运行,可用命令 sudo systemctl stop ntpd停止ntpd服务,再次手动同步即可。如果需要,可用命令 sudo systemctl disable ntpd禁止开机启动。
b 使用ntpstat命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。
c 当server与client之间的时间误差过大时(可能是1000秒),处于对修改时间可能对系统和应用带来不可预知的问题,ntp将停止时间同步!所以如果发现ntp启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,此时需要先手动进行时间同步!
d ntp服务默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置 /etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加SYNC_HWCLOCK=yes,就可以让硬件时间与系统时间一起同步。也可以通过 sudo hwclock -w命令来手动同步BIOS和系统时间。

2 安装ceph-deploy
admin-node机器上执行 sudo vim /etc/yum.repos.d/ceph.repo创建一个软件包源,内容如下:
[ceph-noarch]
name=Ceph noarch packages
baseurl= http://download.ceph.com/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey= https://download.ceph.com/keys/release.asc
baseurl的具体路径可打开 http://download.ceph.com/查看,根据日期选择需要的版本。 http://download.ceph.com/rpm-jewel/el7/noarch为目前最新的一个版本。
然后在admin-node机器上用语句 sudo yum update && sudo yum install ceph-deploy更新软件库和安装ceph-deploy。
安装完成后,执行 ceph-deploy --version命令查看ceph-deploy的版本,我这里是“1.5.37”。至此,ceph-deploy完装完成。
说明:
a 要更新所有的软件库,我这里显示一共要更新666MB,1277个包,所以要等很久才能完成。
b 如果下载rpm包因为超时失败(如下图),可能是因为网络环境原因或者网站原因,可以多试几次或者根据官网的说法,换一个镜像服务器重新安装。

3 安装ceph
下面开始为各个节点安装ceph,注意,每个节点默认都是用test用户登录的。
a 在admin-node执行 mkdir ~/my-clustercd ~/my-cluster,创建my-cluster目录并进入。
b 创建集群:执行语句 ceph-deploy new node1,在当前目录下用 ls 和 cat 检查 ceph-deploy 的输出,应该有一个 ceph 配置文件、一个 monitor 密钥环和一个日志文件。node1作为初始的monitor记录在ceph.conf文件中。
c 修改ceph.conf文件:添加以下内容。mon_clock_drift_allowed是mon之间允许的最大时差,默认为0.05s,如果时差大于了这个值,ceph状态会显示HEALTH_WARN,这里修改到1s。
osd pool default size = 2
public network = 172.16.131.0/24
mon_clock_drift_allowed = 1
d 安装ceph:执行语句 ceph-deploy install admin-node node1 node2 node3为4台机器安装上ceph。
在admin-node安装时会报如下错误,因为在安装ceph-deploy时手动创建了ceph.repo文件,安装ceph时,因为ceph.repo文件存在了,创建ceph软件包源时,指定保存的名字为/etc/yum.repos.d/ceph.repo.rpmnew,导致安装时找不到ceph节点。用命令 sudo rm /etc/yum.repos.d/ceph.repo删除重试即可。仔细看看这两个文件,其实/etc/yum.repos.d/ceph.repo.rpmnew的内容已经包含了/etc/yum.repos.d/ceph.repo的内容。
安装过程中,下载rpm包又超时了(如下图),我测试这么多次,每次都必超时失败。但是在主机外面又能成功下载rpm包,不知道到底是什么原因。而且这里重新安装也不行,因为要执行命令sudo yum clean all清除缓存,重新安装还是要失败。
我用的是配置本地源的方法来解决,手动下载yum安装时下载超时的rpm包,然后放到/home/test/ceph-cache,修改/etc/yum.repos.d/ceph.repo中[Ceph]节点下的baseurl=file:///home/test/ceph-cache,然后再重新安装。安装过程中提示找不到什么,就手动下载什么,然后放到/home/test/ceph-cache目录。CentOS之间拷贝目录可用命令 scp -r root@admin-node:/home/test/ceph-cache/ root@node1:/home/test/ceph-cache/来进行。
下载的网络路径为 http://download.ceph.com/rpm-jewel/el7/x86_64/,最终需要的文件如下,共18个文件。都是10.2.6版本的,如果有更新的版本,ceph-deploy安装时应该会使用新版本,那么可以先下载下列文件对应的更新版本。
ceph-cache
│ ceph-10.2.6-0.el7.x86_64.rpm
│ ceph-base-10.2.6-0.el7.x86_64.rpm
│ ceph-common-10.2.6-0.el7.x86_64.rpm
│ ceph-mds-10.2.6-0.el7.x86_64.rpm
│ ceph-mon-10.2.6-0.el7.x86_64.rpm
│ ceph-osd-10.2.6-0.el7.x86_64.rpm
│ ceph-radosgw-10.2.6-0.el7.x86_64.rpm
│ ceph-selinux-10.2.6-0.el7.x86_64.rpm
│ libcephfs1-10.2.6-0.el7.x86_64.rpm
│ librados2-10.2.6-0.el7.x86_64.rpm
│ libradosstriper1-10.2.6-0.el7.x86_64.rpm
│ librbd1-10.2.6-0.el7.x86_64.rpm
│ librgw2-10.2.6-0.el7.x86_64.rpm
│ python-cephfs-10.2.6-0.el7.x86_64.rpm
│ python-rados-10.2.6-0.el7.x86_64.rpm
│ python-rbd-10.2.6-0.el7.x86_64.rpm
└─repodata
26a6a287b786be782c72a4d73deebe1c9099459469a581ca8365b7efe8b1afa6-primary.sqlite.bz2
repomd.xml
按照官网的说法,可以使用镜像服务器来安装,把ceph.repo包中的 http://download.ceph.com/替换为 http://eu.ceph.com/,但是我尝试了多次,依然安装失败。还是得配置本地源才行,一路畅通,很顺利的安装完成。其他方法,比如配置yum代理,或者CentOS操作系统代理上网的方式来解决,都可以研究一下。
安装完成后,执行 ceph -v查看ceph的版本,我这边输出的是“ceph version 10.2.6 (656b5b63ed7c43bd014bcafd81b001959d5f089f)”。
等4台CentOS 7都安装好ceph后,准备工作就全部完成,下面就该正式部署ceph集群了。

4 部署ceph
注意,在admin-node上部署ceph时,是以test用户登录的,并且位于~/my-cluster下。
a 配置初始 monitor(s)、并收集所有密钥:在admin-node上执行 ceph-deploy mon create-initial,操作完成后,会生成以下4个密钥文件和如下的输出,如图中所示,node1对应的monitor服务名为 ceph-mon@node1 ,并且允许开机启动,之后要操作monitor服务就可以使用此服务名。如果新建其他monitor,服务名需将node1改为对应的机器名。
此时在node1机器的/etc/ceph/ 目录下生成了 ceph.client.admin.keyring ceph.conf 文件,但是注意ceph.client.admin.keyring 权限不足,后续ceph操作无法正常进行,会报错“auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin: (2) No such file or directory ”、“ERROR: missing keyring,cannot use cephx for authentication ”、“initialization error (2) No such file or directory ”。因此需在node1机器上执行 sudo chmod +r /etc/ceph/ceph.client.admin.keyring 修改权限,注意了,ceph-deploy的后续操作可能会再次在各个节点重新生成此文件,当报相应的错时,记得用此命令在各个节点修改权限。
ceph.bootstrap-mds.keyring
ceph.bootstrap-osd.keyring
ceph.bootstrap-rgw.keyring
ceph.client.admin.keyring
b 添加osd:在node2和node3上新建两个目录用于osd,用以下命令来新建,注意要赋予权限给新建的目录,否则后续操作会报错。
ssh node2
sudo mkdir /var/local/osd0
sudo chmod 777 /var/local/osd0/
exit
ssh node3
sudo mkdir /var/local/osd1
sudo chmod 777 /var/local/osd1/
exit
然后执行以下语句来准备和激活osd。
ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
以下是node2添加的输出,注意服务名是 ceph-osd@0 ,而node3的osd服务名为 ceph-osd@1 ,其他osd的服务名为osd的id号。可用命令 ceph osd tree 查看osd所在机器名和id。这里要注意与monitor服务名中@后的区别,monitor服务名中@后为机器名,而osd服务名中@后为id,因为一台机器只有部署一个monitor,而一台机器可以部署多个osd,下面我会进行演示。
c 拷贝配置文件和admin密钥:用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 ceph 节点,这样每次执行 ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 。还要记得修改admin密钥的的权限,不然执行ceph操作都要报错。
ceph-deploy admin admin-node node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
d 检查集群的健康状况 用命令 ceph -s检查状态,如下显示HEALTH_OK即为OK。如果显示HEALTH_WARN,则有可能是时间没同步,参考上面配置ntp的步骤进行同步再观察。
d 进程和服务:用命令 ps -ef | grep cephps aux | grep ceph可查看各个节点运行的ceph进程,如下图。注意命令行后面都带有id参数。然后用语句 systemctl is-enabled ceph-mon@node1分别查看各个进程服务是否自启,记得这三个节点分别是monitor、osd0和ods1,服务名分别是 ceph-mon@node1ceph-osd@0ceph-osd@1。若没有自启,可用语句 sudo systemctl enable ceph-mon@node1来开启自启。


然后重启所有机器,观察重启后,ceph相关的服务和进程是否有自启,ceph的状态是否正常。我这里测试重启后,osd的服务都没有自动启动,也没有相关进程,用 systemctl is-enabled ceph-osd@0发现是disabled,然后用 sudo systemctl enable ceph-osd@0开启自启,再次重启,一切OK。
至此,ceph的快速部署基本完成,下面可以开始一些简单操作。

5 ceph简单操作
以上搭建了个简单的ceph环境,这个步骤就来实际操作和验证下,主要还是根据网方文档来进行。
5.1 扩展集群(扩容)
现在ceph只有一个monnitor,在node1上节点上。下面将在在 node1 上添加一个 OSD 守护进程和一个元数据服务器。然后分别在 node2 和 node3 上添加 Ceph Monitor ,以形成 Monitors 的法定人数。
注意依然以test用户登录admin-node来操作,然后定位到~/my-cluster/目录。
a 添加osd:依次执行以下命令,在node1机器创建osd目录并且赋予权限。
ssh node1
sudo mkdir /var/local/osd2
sudo chmod 777 /var/local/osd2/
exit
然后执行以下命令准备和激活新添加的osd。注意观察输出,如下,此osd的服务就是 ceph-osd@2。此时,可以再用 ceph -s观察下ceph状态是不是为HEALTH_OK,然后再重启node1观察此osd服务是有自启,若没有,按照以上步骤进行修改,此处不再赘述。
ceph-deploy osd prepare node1:/var/local/osd2
ceph-deploy osd activate node1:/var/local/osd2
b 添加元数据服务器:在node1上添加一个元数据服务器,语句如下,观察服务名为 ceph-mds@node1。然后看看此服务有没有启动,会不会自启,之后添加的服务都都可以测试一下,后面也就不再赘述。
ceph-deploy mds create node1
c 添加RADOS Gateway网关:还是在node1上添加,语句如下,注意服务名为 ceph-radosgw@rgw.node1,默认端口号为 7480,后面还会有部署将其修改为其他端口。
ceph-deploy rgw create node1
d 添加 MONITORS 在node2和node3上分别添加一个monitor,语句如下。此处官网的语句为 ceph-deploy mon add node2 node3,但要报错,只能逐一添加。添加后的monitor服务名分别为 ceph-mon@node2 ceph-mon2node2 。可以用语句 ceph quorum_status --format json-pretty 查询法定人数状态。注意,执行以下语句后,ceph-deploy又要把/etc/ceph/ceph.client.admin.keyring 拷贝到node2和node3,此文件又没有权限了,所以又得用 sudo chmod +r /etc/ceph/ceph.client.admin.keyring 来赋予权限。
ceph-deploy mon add node2
ceph-deploy mon add node3

至此,各个节点该添加的服务都已经添加完成。
5.2 存入/检出对象数据
a 创建存储池:用语句 ceph osd pool create data 8创建名为data的存储池。
b 创建对象:用以下语句,先创建一个名为testfile.txt的文件,然后将此文件存储到data里,对象名为test-object-1。
echo {Test-data} > testfile.txt
rados put test-object-1 testfile.txt --pool=data
c 查询对象位置以及检出对象:用语句 osd map data test-object-1可以查询对象的位置,用语句 rados -p data ls可以列出存储data下所有的对象。
然后用语句 rm testfile.txt删除testfile.txt,再用语句ll确认文件确实被删除,然后用语句 rados get test-object-1 testfile.txt --pool=data可以检出对象,再用ll确认文件被检出了,再配合cat命令可查看文件内容。
d 删除对象:用命令 rados rm test-object-1 --pool=data可删除对象。
5.3 块设备
现在我们在admin-node上挂一个块设备来测试一下,这样admin-node也算是ceph-client。注意,ceph-client也是要装ceph的,也需要/etc/ceph/ceph.client.admin.keyring。但是admin-node之前已经装了ceph,这里就可以不用再装ceph,如果是新安装的CentOS,则需要安装ceph。
a 用以下语句创建一个块设备 image 、把 image 映射为块设备、然后创建文件系统。注意,官网创建的块设备语句然后进行映射在此版本会报错,具体解释可看看 http://www.itnpc.com/news/web/146518034576588.html。然用命令 sudo fdisk /dev/rbd0 -l可看到此块设备的详细信息,如下图。
rbd create foo --size 4096 --image-format 2 --image-feature layering
rbd map foo --name client.admin
sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
b 挂载:分别执行以下语句进行挂载,然后用 sudo rz上传了一个文件,再用 df -h查看挂载的详细信息,截图如下。
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
然后可用 sudo umount /mnt/ceph-block-device/命令将挂载的目录卸载,注意,卸载前要先退出此目录,否则会报错“umount: /mnt/ceph-block-device: target is busy.”。
说明:如果客户端需要重启,需要将挂载目录先卸载,重启之后再重新挂载,否则系统在重启的过程中会被卡在"Umounting file system"这个操作上。
5.4 文件系统
我们已经于5.1的b步骤中在node1上添加了元数据服务器,此处就可以不再添加了。
a 创建存储池和文件系统:用以下语句创建名存储池和名为cephfs的文件系统。
ceph osd pool create cephfs_data 8
ceph osd pool create cephfs_Metadata 8
ceph fs new cephfs cephfs_Metadata cephfs_data
b 创建密钥文件:将 ceph.client.admin.keyring里的[client.admin]节点下的key后面的值复制出来,粘贴到新文件admin.secret中,步骤如下图。
c 以内核驱动的方式挂载:挂载语句如下。同样的,可以上传一个文件测试一下,如下图。然后使用 sudo umount /mnt/mycephfs/来卸载。注意,卸载前要先退出此目录,否则会报错“umount: /mnt/mycephfs: target is busy.”。
mkdir /mnt/mycephfs
sudo mount -t ceph node1:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret
d 用户空间文件系统( FUSE ) 需要使用ceph-fuse来挂载,挂载前要先用语句 sudo yum install -y ceph-fuse安装ceph-fuse。注意,安装前,要先修改/etc/yum.repos.d/ceph.repo中[Ceph]节点下的baseurl= http://download.ceph.com/rpm-jewel/el7/x86_64/,因为前面使用本地源的方法安装的ceph,而本地没有ceph-fuse的rpm。或者将相应的ceph-fuse的rpm包下载下来,放到/home/test/ceph-cache 也是可以的。
然后使用以下语句进行挂载,同样的测试上传一个文件,再用 df -h查看挂载详细信息。然后同样可用 sudo umount /home/test/mycephfs/命令卸载。官网说的用命令 fusermount -u /home/test/mycephfs来卸载,但是要报错“fusermount: entry for /home/test/mycephfs not found in /etc/mtab”,原因未知。
sudo mkdir ~/mycephfs
sudo ceph-fuse -k ./ceph.client.admin.keyring -m node1:6789 ~/mycephfs
5.5 对象网关
5.1的c步骤中已经在node1上添加了一个对象网关。默认端口为7480,可以用浏览器打开 http://node1:7480/,可以看到输出一个XML。
现在试着把7480改为80端口。
/etc/ceph/ceph.conf文件里添加如下内容,然后用语句 sudo systemctl restart ceph-radosgw@rgw.node1重启rgw服务。注意,官网使用的是语句 sudo systemctl restart ceph-radosgw.service来重启,但是报错,服务名应该是 ceph-radosgw@rgw.node1,翻回去看看5.1的c步骤就知道了。
[client.rgw.node1]
rgw_frontends = "civetweb port=80"
现在就可以用 http://node1/这访问rgw。

6 服务名
在这里列出所有的服务名,方便对服务进行操作。
模块\机器名 node1 node2 node3
monitor ceph-mon@node1 ceph-mon@node2 ceph-mon@node3
osd ceph-osd@2 ceph-osd@0 ceph-osd@1
mds ceph-mds@node1 N/A N/A
radosgw ceph-radosgw@rgw.node1 N/A N/A

7 ceph状态查询
ceph的实际简单操作就算完成了,这一步用命令来查询ceph状态,主要是备注下。
ceph -s:查看ceph状态
ceph -w:持续监控ceph信息
ceph health detail:ceph状态的详细信息
ceph osd stat:osd信息
ceph osd tree --format=json-pretty 显示osd详细信息(id、状态、以及所有主机)
ceph osd crush tree:显示osd crush信息
:monitor法定人数状态
ceph mon stat :monitor状态
ceph mds stat :mds状态
ceph fs ls :fs列表
ceph osd pool ls / ceph osd lspools :存储池列表
rados -p data ls :存储池中对象列表

CentOS 7使用ceph-deploy1.5.37部署快速ceph10.2.6的更多相关文章

  1. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  2. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  3. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  4. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  5. iOS 10 Safari问题在DOM中不再包含元素

    使用此链接,您可以重现该错误.https://jsfiddle.net/pw7e2j3q/如果您点击元素并从dom中删除它,然后单击链接测试.你应该看到旧的元素弹出选择.是否有一些黑客来解决这个问题?解决方法我能够重现这个问题.问题是,每当您尝试删除其更改事件上的选择框时,iOS10都无法正确解除对选择框的绑定.要解决此问题,您需要将代码更改事件代码放在具有一些超时

  6. ios – 有没有办法针对存档版本(.ipa)运行XCTest(UI)?

    要么我们可以单独构建和测试,以便我们可以先构建并在以后对该构建进行测试吗?

  7. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  8. ios app如何“知道”运行单元测试

    我知道我可以用xcodebuild开始我的应用程序的单元测试,但我想知道是什么告诉应用程序在启动期间运行测试,它是一个发送到应用程序的特殊参数,还是以不同的方式编译以运行测试?

  9. ios – 如何在Swift中正确转换为子类?

    我有一个带有许多不同单元格的UITableView,基于数据源内容数组中的内容,它们应该显示自定义内容.在这里我得到了错误UITableViewCell没有属性customLabelQuestionTableViewCell有哪些.我的演员到QuestionTableViewCell有什么问题?解决方法问题不是你的演员,而是你的细胞宣言.您将其声明为可选的UITableViewCell,并且该声明

  10. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部