|
1 文档描述 此文档描述了ceph 14.2 nautilus (stable)版本,手动部署各个组建的详细步骤。 2 操作环境Ceph 版本:14.2 nautilus (stable) 3 初始化环境注意事项:文档中盘符、主机名hostname、ip地址、fsid等请根据实际情况填写。 1)配置主机名及静态域名解析 #hostnamectl set-hostname {hostname} #vim /etc/hosts ip {hostname} …… 2)关闭防火墙和Selinux #systemctl stop firewalld.service && systemctl disable firewalld.service # setenforce 0 #sed -i ‘s/enforcing/disabled/’ /etc/selinux/config #reboot 3)配置时间同步 #yum install -y chrony Server端配置: #vim /etc /chrony.conf server <Server IP> iburst 删除其它几行默认 iburst 去掉这一行的注释并将 IP 信息改成主节点管理 IP 网段: allow ip网段 去掉这一行的注释: local stratum 10 # systemctl restart chronyd.service # systemctl enable chronyd.service Client端配置: #vim /etc/chronyd.conf server <Server ip> iburst # systemctl restart chronyd.service # systemctl enable chronyd.service 验证配置是否成功: #chronyc sources 4)免密配置 #ssh-keygen -t rsa (一直回车) #ssh-copy-id root@{hostname} 以上每个节点执行。 4 本地yum源配置假设ceph文件存放于/root/ceph-14.2文件夹下; 1)备份系统自带的yum文件 #cd /etc/yum.repo.d/ #mkdir bak #mv * bak 2)创建ceph.repo文件 #vim ceph.repo,添加如下内容 [base] name=local-ceph baseurl=<url> enabled=1 gpgcheck=0 3)清除缓存 #yum clean all 4)建立新缓存 #yum makecache fast 5 安装ceph#yum install ceph -y 6 MON部署6.1 创建第一个mon节点1)创建ceph.conf #uuidgen #vim /etc/ceph/ceph.conf [global] fsid = {uuid} # uuidgen生成集群uuid mon_initial_members = {hostname}…… mon_host = ip01,ip02…… auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx [mon] mon_clock_drift_allowed = 0.5 mon_clock_drift_warn_backoff = 0.5 mon_pg_warn_max_per_osd = 600 mon_osd_down_out_interval = 900 mon_osd_full_ratio = .85 mon_osd_nearfull_ratio = .75 2)创建mon keyring #ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' 3)创建client.admin keyring # ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *' 4)创建 bootstrap-osd keyring #ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' 5)添加client.admin keyring、 bootstrap-osd keyring至mon keyring中 #ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring #ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring 6)创建monitor map #monmaptool --create --add {hostname} {IP} --fsid {uuid} /tmp/monmap 7)创建monitor数据目录 #sudo -u ceph mkdir /var/lib/ceph/mon/ceph-{hostname} 8)修改ceph.mon.keyring所属用户和用户组 #chown ceph:ceph /tmp/ceph.mon.keyring #chown ceph:ceph /tmp/monmap 9)构建monitor守护进程所需的初始数据 #sudo -u ceph ceph-mon --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring 10)创建done空文件,表明该mon已创建并可以启动 touch /var/lib/ceph/mon/ceph-{hostname}/done 11)启动mon进程 #systemctl enable ceph-mon@{hostname} #systemctl start ceph-mon@{hostname} 12)创建upstart空文件,为保证每次重启后该mon进程能正常启动(ubuntu环境下创建) #touch /var/lib/ceph/mon/ceph-{hostname}/upstart 13)添加mon到集群 #ceph mon add {hostname} IP:6789 6.2 添加mon节点1)将第一个mon节点生成的配置文件和密钥文件拷贝至本节点 #scp /etc/ceph/* root@{new-hostname}:/etc/ceph/ #scp /var/lib/ceph/bootstrap-osd/ ceph.keyring root@{new-hostname}:/var/lib/ceph/bootstrap-osd/ 2)创建monitor数据目录 #ceph mkdir /var/lib/ceph/mon/ceph-{new-hostname} 3) 修改ceph.mon.keyring所属用户和用户组 #chown ceph:ceph /tmp/ceph.mon.keyring #chown ceph:ceph /tmp/monmap 4) 获取密钥和monmap信息 # ceph auth get mon. -o /tmp/ceph.mon.keyring # ceph mon getmap -o /tmp/ceph.mon.map 5)初始化mon #ceph ceph-mon --mkfs -i {new-hostname} \ --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring 6)创建done空文件,表明该mon已创建并可以启动 #touch /var/lib/ceph/mon/ceph-{new-hostname}/done 7)将新的mon节点添加至ceph集群的mon列表 # ceph mon add {new-hostname} IP:6789 8)启动mon进程 #systemctl enable ceph-mon@{hostname} #systemctl start ceph-mon@{hostname} 9)创建upstart空文件,为保证每次重启后该mon进程能正常启动(ubuntu环境下创建) #touch /var/lib/ceph/mon/ceph-{hostname}/upstart 注意:新添加mon节点参考上述步骤。 7 OSD部署#ceph-volume lvm create --data /dev/sd$? 8 MGR管理ceph-mgr的主要功能是提供外部监测和管理系统的接口。 8.1 配置并启动MGR1)生成mgr密钥 #ceph auth get-or-create mgr.{hostname} mon 'allow *' osd 'allow *' 2)创建mgr数据目录 #mkdir /var/lib/ceph/mgr/ceph-{hostname}/ 3)保存密钥文件 #ceph auth get mgr.{hostname} -o /var/lib/ceph/mgr/ceph-{hostname}/keyring 4)启动mgr 使用 ceph-mgr -i {hostname} 可以对mgr进行启动,例如: ceph-mgr -i ceph1,启动之后通过ceph -s 可以看到mgr active的信息。 8.2 启用并配置dashboard1)安装mgr-dashboard # yum install ceph-mgr-dashboard -y 2)修改ceph.conf添加如下配置: mgr_initial_modules = dashboard 3) mgr提供一个web界面,可以用来显示监控信息。默认是没有启动的,可以通过以下命令启用dashboard #ceph mgr module enable dashboard 4)生成签名证书,快速访问 #ceph dashboard create-self-signed-cert 5)创建具有管理员角色的用户 ceph dashboard set-login-credentials {username} {password} 6)查看ceph-mgr服务 #ceph mgr services 6)配置完成后,可以通过浏览器使用 https://$IP/7000 的方式进行访问dashboard 9 FS使用9.1 部署MDS1)为MDS元数据服务器创建一个数据目录 # mkdir -p /var/lib/ceph/mds/ceph-{hostname} 2) 创建MDS用户 # ceph auth get-or-create mds.{hostname} osd "allow rwx" mds "allow" mon "allow profile mds" 3)获取MDS密钥并导入其数据目录 # ceph auth get mds.{hostname} | tee /var/lib/ceph/mds/ceph-{hostname}/keyring 4)启动守护进程 #systemctl restart ceph-mds@{hostname} && systemctl enable ceph-mds@{hostname} 9.2 创建cephfs1)创建 #ceph osd pool create cephfsdata <pg_num> <pgp_num> #ceph osd pool create metadata <pg_num> <pgp_num> #ceph fs new cephfs metadata cephfsdata 2)检查状态 #ceph mds stat #ceph fs status 9.3 挂载cephfs1)创建挂载目录 #mkdir /mnt/cephfs 2)查看管理员密钥 密钥存放于ceph.client.admin.keyring内,key值即为密钥 3)使用mount命令挂载 # mount ceph monip:6789/ /mnt/cephfs -o name=admin,secret={secretkey} 4)使用df -Th命令查看挂载情况 10 RGW使用10.1 配置RGW1)创建RGW数据目录 # mkdir – p /var/lib/ceph/radosgw/ceph-rgw.{hostname} 2)创建 auth认证 #ceph auth get-or-create client.rgw.{hostname} osd "allow rwx" mon "allow rw" 3)获取auth认证密钥 #ceph auth get client.rgw.{hostname} | tee /var/lib/ceph/radosgw/ceph-rgw.{hostname}/keyring 4)修改rgw数据目录所属用户和用户组 chown -R ceph:ceph /var/lib/ceph/radosgw/ceph-rgw.{hostname} 5)创建对象网关所需存储池 # for pools in {.rgw.root,default.rgw.control,default.rgw.meta,default.rgw.log,default.rgw.buckets.index,default.rgw.buckets.data};do ceph osd pool create $pools <pg_num> <pgp_num> ;done 6)启动rgw进程 #systemctl enable ceph-radosgw@rgw.{hostname} #systemctl start ceph-radosgw@rgw.{hostname} 7)创建s3类型访问用户 #radosgw-admin user create --uid="user" --display-name="First User" 8)创建swift类型访问用户 #radosgw-admin subuser create --uid=user --subuser=user:swift --access=full 10.2 Swift 验证1)依赖安装 #yum install python-setuptools #easy_install pip #pip install --upgrade setuptools #pip install --upgrade python-swiftclient 2)运行测试命令,注意:红色部分为创建switf用户时产生的swift_keys-->secret_key的值 user:swift -K '244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF/IA' list 3)返回结果大概如下 my-new-bucket 10.3 S3验证1)安装依赖库 #yum install python-boto -y 2)创建s3测试脚本,红色部分为创建s3用户产生的keys-->access_key、secret_key的值 vim s3test.py import boto.s3.connection access_key = 'K5983B5LRRCJAY3XJZE7' secret_key = 'ZJQ0DFerteSSinagLNv70EFdEBRf5vFj94q9n8Eo' conn = boto.connect_s3( aws_access_key_id=access_key, aws_secret_access_key=secret_key, host='ip', port=<port>, is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(), ) bucket = conn.create_bucket('new-bucket') for bucket in conn.get_all_buckets(): print "{name} {created}".format( name=bucket.name, created=bucket.creation_date, ) 3)运行脚本 python s3test.py 4)返回结果大概如下 s3-test-bucket 2021-10-08T02:36:23.913Z 11 存储池相关操作11.1 创建存储池--创建存储池 #ceph osd pool create <poolname> <pg_num> <pgp_num> --修改存储池应用类型 #ceph osd pool application enable <poolname> [cephfs,rbd,rgw] 11.2 删除存储池#ceph osd pool delete <poolname> <poolname> --yes-i-really-really-mean-it 3 W+ Z" y" q! O8 V4 \
|