服務器硬件配置及環境
項目 | 說明 |
---|---|
CPU | 1核 |
內存 | 1GB |
硬盤 | 40GB |
系統 | CentOS 7.5 |
時間同步服務 | chrony |
ceph | 13.2.2-0 |
節點部署圖
節點功能簡介
項目 | 說明 |
---|---|
yum repo | 若是部署環境每一個節點均可以訪問外網, 則無需作任何操做, 部署腳本會自動添加外網環境的yum源. 若是部署沒法訪問外網, 須要自行部署centos, epel, ceph三個yum源. 每一個節點都必須能夠訪問所提到的全部yum源 |
時間同步服務器 | 每一個節點都必須能夠訪問, 若是部署環境沒法訪問外網須要自行搭建時間同步服務器 |
client-x | 須要掛載存儲的設備, 須要同時能夠訪問每一個storage-ha-x和yum源, 時間服務器 |
storage-deploy-1 | 用於統一部署ceph集羣的工做機, 系統爲CentOS 7.5 |
storage-ha-x | 承載ceph各項服務的服務器節點, 系統爲CentOS 7.5 |
mon | Monitors, 節點映射管理, 身份驗證管理, 須要達到冗餘和高可用至少須要3個節點 |
osd | object storage daemon, 對象存儲服務, 須要達到冗餘和高可用至少須要3個節點 |
mgr | Manager, 用於跟蹤運行指標和集羣狀態, 性能. |
mds | Metadata Serve, 提供cephfs的元數據存儲 |
參考:node
默認端口
項目 | 說明 |
---|---|
ssh | tcp: 22 |
mon | tcp: 6789 |
mds/mgr/osd | tcp: 6800~7300 |
參考:linux
默認路徑
項目 | 說明 |
---|---|
主配置文件 | /etc/ceph/ceph.conf |
配置文件夾 | /etc/ceph |
日誌文件夾 | /var/log/ceph |
各服務認證key文件 | /var/lib/ceph/{server name}/{hostname}/keyring |
admin認證key文件 | ceph.client.admin.keyring |
部署腳本說明
- node-init.sh: storage-ha-x節點初期運行的初始化腳本
- admin-init.sh: storage-deploy-1節點初期運行的初始化腳本, 必需要在每一個storage-ha-x節點都運行完node-init.sh以後才能運行.
- ceph-deploy.sh: ceph部署腳本, 僅在storage-deploy-1節點上運行便可, 須要在
node-init.sh
和admin-init.sh
運行完成且成功後運行.
PS: 腳本中涉及到的ip和其它不一樣信息請先自行修改後再運行.git
腳本運行命令
請將 附錄: 腳本內容
章節或腳本Git庫
章節中的各個腳本放到各個對應服務器任意位置並使用如下命令按照順序運行.github
PS: 需嚴格按照部署腳本說明
章節中的持續順序執行腳本.json
PS: 腳本中涉及到不一樣於當前環境的信息(如: ip, yum源, 密碼, 主機名等)請先自行修改後再運行.centos
- 初始化ceph節點
1 |
/bin/bash node-init.sh |
執行命令結果api
- 初始化部署節點
1 |
/bin/bash admin-init.sh |
執行命令結果bash
- 開始部署
1 |
/bin/bash ceph-deploy.sh |
執行命令結果服務器
能夠看到上方的pgs
下方有個creating+peering
, 這表示OSDs在建立和準備同步中.須要等待
這時能夠在任意有admin角色的storage-ha-x
節點上執行如下命令看查是否完成準備
1 |
ceph -s |
當pgs
顯示爲下圖的active+clean
表明各個節點同步完成.
若是一直沒法達到active+clean
狀態, 請參考如下操做文章:
TROUBLESHOOTING PGS
掛載存儲
建立測試用戶
如下命令在任意一個storage-ha-x服務器上運行
1 |
# 此命令含義是建立一個名爲client.fs-test-1的用戶, 對於掛載的根目錄'/'只有可讀權限, 對於掛載的'/test_1'目錄有讀寫權限. |
獲取用戶受權信息
如下命令在任意一個添加過admin
角色的storage-ha-x服務器上運行
1 |
# 獲取client.admin用戶的受權信息 |
掛載方式
掛載方式分爲兩種, 分別是cephfs和fuse. 選擇其中一種方式進行掛載便可.
兩種掛載方式的區別和優點請參考如下文章:
WHICH CLIENT?
cephfs方式
如下命令在任意須要掛載存儲的client下執行
PS: 此掛載方式依賴於ceph, 須要先添加ceph和epel的yum源.
1 |
# cephfs方式掛載 |
fuse方式
如下命令在任意須要掛載存儲的client下執行
PS: 此掛載方式依賴於ceph-fuse, 須要先添加ceph和epel的yum源.
1 |
yum install ceph-fuse -y |
掛載結果
掛載結果可使用如下命令查看
1 |
df -h |
運維命令
- 狀態查看
1 |
# 查看集羣總體狀態 |
- 簡單寫性能測試
1 |
# 在掛載了存儲的client下簡單測試寫性能 |
- 刪除cephfs和pool
1 |
# 刪除cephfs前須要的操做 |
- 同步ceph配置文件
1 |
# 同步的配置文件 |
FAQ
-
Q: health_warn:clock skew detected on mon
A: 使用chrony同步每臺服務器節點的時間 -
Q: Error ERANGE: pg_num 「*「 size 「*「 would mean 「*「 total pgs, which exceeds max 「*「 (mon_max_pg_per_osd 250 num_in_osds 「\「)
A: ceph.conf配置文件中加入mon_max_pg_per_osd = 1000
(參數中的數值本身根據實際狀況修改)並用同步ceph配置文件
方式上傳到各個節點, 並重啓ceph-mon.target
-
Q: too many PGs per OSD
A: ceph.conf配置文件中加入mon_max_pg_per_osd = 1000
(參數中的數值本身根據實際狀況修改)並用同步ceph配置文件
方式上傳到各個節點, 並重啓ceph-mon.target
參考
ceph cephx認證參考
設置cephfs訪問權限
ceph用戶管理
ceph-fuse方式掛載
Ceph 運維手冊
Red Hat Ceph存儲—《深刻理解Ceph架構》
Ceph常規操做及常見問題梳理
腳本Git庫
https://github.com/x22x22/cephfs-verify-script
附錄: 腳本內容
- node-init.sh
1 |
|
- admin-init.sh
1 |
|