wsaer 发表于 2019-2-1 13:50:54

【Ceph】手动搭建ceph集群

  手动部署Ceph集群


[*]3台ceph机器




hostname
IP
mon_id
磁盘快
journal




Ceph1
192.168.1.1
0
/dev/sdb2
/dev/sdb1


Ceph2
192.168.1.2
1
/dev/sdb2
/dev/sdb1


Ceph3
192.168.1.3
2
/dev/sdb2
/dev/sdb1




[*]下载部署所需要的ceph集群的rpm包
ceph-monceph-common fcgiceph-base ceph-selinux ceph-mgr ceph-dashceph-radosgw ceph-osd
根据系统内核版本号下载对应的enhanceio包
[*]使用yum来安装这些包
[*]  初始化moniter

[*]根据uuidgen获取uuid:
ceph_uuid=$(uuidgen)
[*]  使用monmaptool创建一个空的ceph文件系统

monmaptool --create-add mon_id1 IP1   --add mon_id2 IP2 ...--fsdi $ceph_uuid --clobber /tmp/montap
其中:
--clobber表示允许 monmaptool 覆盖 mapfilename
IP1:表示第一台moniter的IP
IP2:表示第二台moniter的IP
mon_id1:表示第一台ceph的moniter的ID,随意字符
[*]  更改ceph的配置文件

      改为:/etc/ceph/ceph.conf
fsid=$ceph_uuid
mon_host= IP1,IP2....
public_addr= IP1
[*]  创建ceph的mon目录

            mkdir/var/lib/ceph/mon
[*]创建
ceph-mon -i mon_id--mkfs --monmap/tmp/montap
注:每台moniter对应的mon_id不同
在Ceph1上执行:
ceph-mon -i 0 --mkfs --monmap/tmp/montap
在Ceph2上执行:
ceph-mon -i 1 --mkfs --monmap/tmp/montap
[*]  改变/var/log/ceph和/var/lib/ceph的用户组和用户

            chow -R ceph.ceph /var/lib/ceph /var/log/ceph
[*]  开启moniter

            systemctl reset-failedceph-mon@mon_id
systemctl   start ceph-mon@mon_id
[*]开启dash并加入自启动
/etc/init/ceph-dash start
echo '/etc/init.d/ceph-dash start & ' > /etc/rc.d/rc.local


[*]初始化mgr   
systemctl start ceph-mgr@mon_id
[*]  初始化s3   :$name=任意值   在其中一台mon上执行

[*]新建keyring
ceph-authtool -C /etc/ceph/ceph.client.radosgw.keyring
chmod +r/etc/ceph/ceph.client.radosgw.keyring
[*]生成radosgw服务对应的用户和key,其中name为radows网关的实例名称,常为gateway
ceph-authtool/etc/ceph/ceph.client.radosgw.keyring-n client.radosgw.$name -g
[*]添加用户访问权限
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring-n client.radosgw.$name--cap osd 'allow rwx'--cap mon 'allow rwx'
[*]  将秘钥添加到Ceph集群中

      ceph -k /etc/ceph/ceph.client.radosgw.keyringauth addclient.radosgw.$name -i /etc/ceph/ceph.client.radosgw.keyring
[*]  配置ceph配置文件

debug_rgw =100
rgw_data=/var/lib/ceph/radosgw/radosgw-$name
rgw_socket_path=/var/run/ceph/ceph.radosgw.$name
admin_socket=/var/run/ceph/ceph.radosgw.$name
rgw_enable_usage_log = true
rgw_frontends = civetweb port=12345

    注:这里采用S3的civetweb的前端方式,除此之外还有Apache和Nginx
[*]  创建S3用户

    radosgw-admin user create --uid='uid' --display-name='name' --email=xxx@xxx.com
[*]  启动radosgw

    radosgw -c /etc/ceph/ceph.conf-n client.radosgw.$name


[*]  初始化osd      每块盘都得执行一下命令

[*]创建OSD
osd_id=$(ceph osd create)
[*]  创建OSD目录

    mkdir /var/lib/ceph/osd/$osd_id
[*]  获取UUID并写入fsid文件中

    osd_uuid=$(uuidgen)
echo '$osd_uuid'> /var/lib/ceph/osd/$osd_id/fsid
[*]  格式化数据盘

    ceph-mkfs -i $osd_id/dev/sdb2
如果出现格式化失败使用一下命令:
mkfs.xfs/dev/sdb2
xfs_admin -U $osd_uuid /dev/sdb2
[*]创建mkfs_done文件
touch /var/lib/ceph/$osd_id/mkfs_done
[*]  将数据盘挂在到/var/lib/ceph/osd/$osd_id目录下

      mount -o noatime UUID=$osd_uuid /var/lib/ceph/osd/$osd_id
[*]  讲osd_uuid写进fsid文件,将字符串filestore写进type文件中

      echo $osd_id > /var/lib/ceph/osd/$osd_id/fsid
echo "filestore"> /var/lib/ceph/osd/$osd_id/type
[*]  创建journal链接

      ln -sf /dev/sdb1 /var/lib/ceph/osd/$osd_id/journal
[*]  初始化数据目录

      ceph-osd -i $osd_id --mkfs
[*]  改变权限

      chown -HR ceph:ceph /var/lib/ceph/osd
chown -R ceph:ceph /var/log/ceph
[*]  创建链接

      ln -sf /dev/disk/ceph/by-uuid/$osd_uuid      /var/lib/ceph/osd/$osd_id/journal
[*]  取消挂载

      umount /var/lib/ceph/osd/$osd_id
[*]  修改ceph-osd@serivce文件

      删除/usr/lib/systemd/system/ceph-osd@.service文件中ProtectHome,ProtectSystem,PrivateTmp行
[*]开启OSD
systemctl reset-failed ceph-osd@$osd_id
systemctl start ceph-osd@$osd_id
systemctl enable ceph-osd@$osd_id





页: [1]
查看完整版本: 【Ceph】手动搭建ceph集群