CEPH篇 CEPH部署(在线和离线 Centos 7)
引入
这篇只记录部署,如果需要概念理解,则前往其他篇章查看。暂时不包含MDS的部署,因为不准备使用文件系统,所以不需要元数据服务器
在线部署和离线部署差别只在包的下载,如果在线部署过了,那么资源包可以放入U盘,下次就可以离线部署。
正文
部署准备
关闭防火墙和selinux
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
修改主机名
各个机器下分别执行如下命令
hostnamectl set-hostname host145 hostnamectl set-hostname host146 hostnamectl set-hostname host147
修改后在每台机器上修改/etc/hosts文件
10.1.12.145 host145 10.1.12.146 host146 10.1.12.147 host147
配置SSH互信
选择一台部署主机,这边选择host146,在root用户下开启SSH互信操作
在部署节点上, 使用这个命令ssh-keygen 一路回车 ,生成公钥。 然后通过命令ssh-copy-id -i ~/.ssh/id_rsa.pub {hostname} 把公钥复制到部署需要设计的主机上。 Ssh hostname测试是否成功。
配置yum(分为在线和离线)
在线
#链接阿里云的配置 rm -rf /etc/yum.repo.d/ *.repo #CentOS 7 源设置 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #epel 仓库源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
编辑 Ceph.repo源:
[ceph-nautilus] name=ceph-nautilus baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/ enabled=1 gpgcheck=0 [ceph-nautilus-noarch] name=ceph-nautilus-noarch baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/ enabled=1 gpgcheck=0
#生成缓存 yum clean all, yum makecache #生成包 yum install ceph-14.2.2-0.el7 ceph-deploy
离线
#安装 createrepo rpm包 yum install httpd #开启httpd服务: systemctl start httpd #复制所有的ceph和第三方的rpm包到(包已经提前准备好,如果没有包则使用在线部署) 10.1.12.146: /var/www/html/ceph/ #执行命令 createrepo /var/www/html/ceph/ #在需要安装的客户端配置 repo 文件 /etc/yum.repos.d/ceph.repo [ceph_local] name=ceph baseurl=http://10.1.12.146/ceph/ gpgcheck=0 #将此ceph.repo 复制到每个主机 /etc/yum.repo.d/目录中。 scp ceph.repo root@host145:/etc/yum.repos.d/ scp ceph.repo root@host147:/etc/yum.repos.d/
NTP安装
#安装 yum install ntp #执行 最好在局域网内,建立自己的时间同步源。其中ntpdate 是客户端命令, 连接时间同步服务器,修改自己的时间。 一定要同步时间, ntpdate -s time-b.nist.gov
修改配置文件
#修改 /etc/ntp.conf文件 #注释下面4行 server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
服务器节点修改如下
server 127.127.1.0 fudge 127.127.1.0 stratum 10
验证下
ntpq –p –-查看ceph-admin的ntp服务器是否为自身 remote refid st t when poll reach delay offset jitter ========================================================================== *LOCAL(0) .LOCL. 10 l 28 64 377 0.000 0.000 0.000 这样的输出证明已经配置成功了。
配置其他节点
#其他服务器都连接admin节点,其中段: server 210.72.145.44 iburst Server 10.1.12.146 -----------–为ceph-admin的IP fudge 127.127.1.0 stratum 11
重启后检查
systemctl restart ntpd systemctl enable ntpd #查看是否为ceph-admin ntpq –p #结果如下 remote refid st t when poll reach delay offset jitter =========================================================================== *ceph-admin LOCAL(0) 11 u 13 64 1 1.236 -0.700 0.000 Remote :*ceph-admin Refid :LOCAL(0) 如果是其他的,如:refid:init就为配置不成功,按此步骤在其他节点进行配置。
部署CEPH
部署ceph和ceph-deploy
在所有上都安装ceph,主节点上额外安装ceph-deploy
#每个主机安装 ceph yum install ceph #Admin节点安装 yum install ceph-deploy
部署监控节点(mon)
添加节点
#在管理节点上 cd /root/ceph ceph-deploy new host146 host145 host147 #修改这个文件,添加: overwrite_conf = true vim / root/.cephdeploy.conf
部署mon
mkdir -p /etc/ceph/ mkdir /var/lib/ceph #ceph用户是ceph的默认用户,不要去新建哦 chown ceph:ceph -R /var/lib/ceph #(必须当前目录有ceph.mon.keyring) ceph-deploy --overwrite-conf mon create-initial
重启命令
#host是主机
systemctl restart/start/stop ceph-mon@host
部署mgr
ceph-deploy mgr create host146 ps -ef | grep ceph 查找host #重启 systemctl restart/start/stop ceph-mgr@host
部署OSD
先要有挂载磁盘,用系统盘也可以,但是并不安全,这里有两个方案
1.找几台新机器,OSD挂载的目录反正随便定,新机器上的数据都无所谓
2.额外挂载磁盘,可以对挂载磁盘做虚拟化,LVM,可以部署更多OSD
可以执行lsblk命令查看,如果磁盘已经被挂载,则会报错哦
#新版本ceph默认是 bluetore .使用如下命令 ceph-deploy --overwrite-conf osd create --data /dev/vdb $HOSTNAME #查看 集群硬盘树编号。(部署节点) 需要拷贝配置文件(ceph.conf)到/etc/ceph/!!!否则会连接不到集群 ceph osd tree #重启 systemctl restart/start/stop ceph-osd@0, 1, 2,3,
部署RGW
#单机的只需要在一台服务器上安装, 如果负载均衡,可以安装3台服务器。S 现在安装在146 yum install ceph-radosgw #或者 ceph-deploy install --rgw wn
启动
ceph-deploy --overwrite rgw create host173(主机名) #查看启动端口为7480 #检查服务是否启动 ps aux|grep radosgw #重启 这个id可以通过查看rados进程,查看名称得到,例如rgw.host146 systemctl restart/start/stop ceph-radosgw@id
桶分片
# 如果每个桶中对象数量较少,比如小于10000, 可以不操作此步骤, 大于10万对象,一定要设置下面的参数。 #如果设计方案中,一个桶中存储对象数量大于几千万,需要关闭动态分片, 同时设置最大分片数量。 #在 radosgw 进程所在的服务器。 vi /etc/ceph.conf #桶动态分片默认开启 rgw_dynamic_resharding = false #桶中最大分片的数量 , rgw_override_bucket_index_max_shards=16 #重启服务。(rgw)
建立账号(S3)
# system参数是为了使用dashboard,该账号可以再页面上看到数据 radosgw-admin user create --uid testid --display-name 'M. Tester' --system #记住这两个东西 "access_key": "secret_key":
#部署失败返回错误的处理方法: #只有建立 bucket , 上传一个对象后, 才能出现 default.rgw.buckets.data池, 然后调整pg num . #这个时候,解决pg/osd 太少的警报。 #部署时候如果遇到 rgw 失败,现实的日志为: # 0 ext_mime_map_init failed to open file=/etc/mime.types : (2) No such file or ##directory #7f709e8c48c0 -1 ERROR: unable to initialize rgw tools #这是因为没有 /etc/mime.types #需要安装 yum install mailcap #如果启动失败, 有时候需要将 /var/lib/ceph/radosgw 的用于 root 改成 ceph . chown ceph:ceph –R *
部署dashboard
yum install ceph-mgr-dashboard ceph dashboard create-self-signed-cert #写上账号和密码 ceph dashboard set-login-credentials admin admin
打开页面后长这样:
这时候你有可能(就是如此)在object gateway里面看不到bucket内容,需要再添加一个命令:
$ ceph dashboard set-rgw-api-access-key <access_key>
$ ceph dashboard set-rgw-api-secret-key <secret_key>
如果你忘记了你的账户,或者需要新建一个账户:
$ radosgw-admin user create --uid=<user_id> --display-name=<display_name> \
--system
如果是忘了两个key
$ radosgw-admin user info --uid=<user_id>
这样就可以啦,完