一、相關依賴包安裝
1. 安裝依賴包
yum install libtool gcc gcc-c++ libuuid-devel keyutils-libs-devel libblkid-devel redhat-lsb libedit-*
yum install libatomic_ops-devel snappy-devel leveldb-devel libudev-devel cryptopp-* fuse-devellibaio-devel xfsprogs-devel automake autoconf boost-devel expat-devel
2.安裝調試依賴包
yum install lttng-tools* lttng-ust* lttng*
3.下載源碼
wget http://download.ceph.com/tarballs/ceph_12.2.2.orig.tar.gz
二、源碼編譯
1.解壓ceph
tar xvf ceph_12.2.2.orig.tar.gzcd ceph_12.2.2
2. 安裝官方依賴包
./install-deps.sh
./run-make-check.sh
3. 開始編譯
#編譯源碼是個漫長的過程,根據(jù)機器配置指定。如果是虛擬機可能需要好幾個小時。還會出現(xiàn)各種依賴包缺失的情況,非常耗時。
mkdir build
cd build
cmake ..
make -j40 (可以多核編譯加快編譯速度)
make install
三、測試環(huán)境部署
1. 啟動開發(fā)集群
#此處有一個非常大的坑,折騰了半天。
#必須在build目錄下面執(zhí)行啟動腳本,否則一直報缺少libec_jerasure.so,即使配置到系統(tǒng)變量里面也不行。
load dlopen(/libec_jerasure.so): /libec_jerasure.so: cannot open shared object file: No such file or directory
#啟動開發(fā)集群
cd build
MON=1 MDS=0 OSD=3 ../src/vstart.sh -d -n -x
參數(shù)說明:
-m 指出monitor節(jié)點的ip地址和默認端口6789;
-n 指出此次部署為全新部署;
-d 指出使用debug模式(便于調試代碼);
-r 指出啟動radosgw進程;
--mon_num 指出部署的monitor個數(shù);
--osd_num 指出部署的OSD個數(shù);
--mds_num 指出部署的MDS個數(shù);
--bluestore 指出ceph后端存儲使用最新的bluestore;
2. 停止開發(fā)集群
#啟動開發(fā)集群
cd build
../src/stop.sh all
3. 運行單元測試
cd build
make check
四、源碼分析工具
1. gdb
擅長做精細化的調試。比如查看變量內容,查看內存內容,條件斷點等。
#待續(xù)
2.lttng
ceph自帶,兼容性好。適當?shù)臅r候可以打印關鍵變量內容
#待續(xù)
3.systemtap
擅長分析代碼流程,打印函數(shù)調用關系,不需要修改源碼,據(jù)說還能分析性能瓶頸
#待續(xù)