Ceph 手動搭建ceph集群

2021-09-01 17:42:45 字數 4475 閱讀 2845

hostname

ipmon_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

使用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-failed  ceph-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

新建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.keyring  auth add  client.radosgw.$name -i /etc/ceph/ceph.client.radosgw.keyring

配置ceph配置檔案

[client.radosgw.lirui]

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=***@***.com

啟動radosgw

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

建立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/[email protected]檔案中protecthome,protectsystem,privatetmp行

開啟osd

systemctl reset-failed ceph-osd@$osd_id

systemctl start ceph-osd@$osd_id

systemctl enable ceph-osd@$osd_id

手動部署Ceph集群

接上篇,這次使用全手工配置的方式部署一套集群。環境配置及需要做的準備工作和上篇一樣,不再多說了。先從單節點配起,然後逐步進行擴充套件,最終做到三節點。安裝ceph 這裡選擇從倉庫中進行安裝,而不是從源 開始編譯,因為實在是太慢了,跑了一天還沒跑完。apt install ceph ceph mds配...

Ceph基礎之搭建ceph集群

8 更新源 yum update ysetenforce 0 4 安裝ntp,在所有ceph節點上執行 2 用ceph deploy建立ceph集群mkdir etc ceph 生成乙個新的ceph集群,集群包括ceph配置檔案以及monitor的金鑰環。3 安裝ceph二進位制軟體包ceph de...

ceph 在虛擬機器上搭建ceph集群

本實驗利用三颱虛擬機器搭建ceph集群。環境 vmware ubuntu18.04 3 主機名與主機ip ceph node1 192.168.50.101 ceph node2 192.168.50.102 ceph node3 192.168.50.103 最後在三颱機器上都各部署乙個monit...