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...