引入
这篇只记录部署,若是须要概念理解,则前往其余篇章查看。暂时不包含MDS的部署,由于不许备使用文件系统,因此不须要元数据服务器html
在线部署和离线部署差异只在包的下载,若是在线部署过了,那么资源包能够放入U盘,下次就能够离线部署。linux
正文
部署准备
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
各个机器下分别执行以下命令vim
hostnamectl set-hostname host145 hostnamectl set-hostname host146 hostnamectl set-hostname host147
修改后在每台机器上修改/etc/hosts文件centos
10.1.12.145 host145 10.1.12.146 host146 10.1.12.147 host147
选择一台部署主机,这边选择host146,在root用户下开启SSH互信操做api
在部署节点上, 使用这个命令ssh-keygen 一路回车 ,生成公钥。 而后经过命令ssh-copy-id -i ~/.ssh/id_rsa.pub {hostname} 把公钥复制到部署须要设计的主机上。 Ssh hostname测试是否成功。
#连接阿里云的配置 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/
#安装 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 这样的输出证实已经配置成功了。
配置其余节点ssh
#其余服务器都链接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 yum install ceph #Admin节点安装 yum install ceph-deploy
添加节点
#在管理节点上 cd /root/ceph ceph-deploy new host146 host145 host147 #修改这个文件,添加: overwrite_conf = true vim / root/.cephdeploy.conf
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
ceph-deploy mgr create host146 ps -ef | grep ceph 查找host #重启 systemctl restart/start/stop ceph-mgr@host
先要有挂载磁盘,用系统盘也能够,可是并不安全,这里有两个方案
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,
#单机的只须要在一台服务器上安装, 若是负载均衡,能够安装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)
# 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 *
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>
这样就能够啦,完