虛擬機系統準備環境爲:node
root@test3:~# cat /proc/version
Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014
python
設備共4臺:git
192.168.0.100:做爲部署節點和monitor節點。ubuntu
192.168.0.101:做爲osd設備 0 ,掛載一個20G的硬盤vim
192.168.0.102:做爲osd設備 1 ,掛載一個20G的硬盤ssh
192.168.0.103:做爲客戶端,在客戶端能夠訪問虛擬rbd設備oop
將apt的源文件替換成以下地址,由於國外的源會比較慢。學習
root@ test100:~# cat /etc/apt/sources.listui
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversespa
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
root@ test100:~# apt_get update
……………………………….
Reading package lists... Done
root@ test100:~#
登陸到100設備,做爲部署設備,意思爲用這臺機器部署整個集羣。
登陸設備後,建立ceph用戶
useradd -d /home/ceph -m ceph
爲ceph用戶修改密碼
passwd ceph
爲用戶添加root權限
sudo echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph
在兩個osd 設備上創建相同的ceph用戶 和密碼
檢查是否存在ssh服務
若是不存在,則須要安裝一個
sudo apt-get install openssh-server
2. 修改hosts文件 ,修改後能夠經過名字訪問各個設備,不須要輸入ip
n 修改hosts文件
$Vim /etc/hosts
root@test100:~/ceph-cluster# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu14
192.168.0.100 cephmon
192.168.0.101 osd1
192.168.0.102 osd0
192.168.0.103 client
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@cci-test3:~/ceph-cluster#
將這個hosts文件中添加的項 添加到osd的設備上
在100 上修改hostname
修改hostname 爲cephmon
hostname cephmon
vim /etc/hostname
$cat /etc/hostname
Cephmon
該方法一樣修改osd設備,osd設備的名字改爲osd0,osd1。
3. 安裝ceph-deploy
輸入命令獲取而且安裝,共四條命令
A. wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
B. echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
C. sudo apt-get update
D. sudo apt-get install ceph-deploy
安裝發生意外?提示如下信息:
python-setuptools but it is not going to be installed
表示當前 ceph-deploy依賴於 Python-setuptools,嘗試安裝Python-setuptools ,使用命令:agt-get install python-setuptools
再次發生意外提示:
python-pkg-resources (= 3.3-1ubuntu1) but 3.3-1ubuntu2 is to be installed
此次說明已經安裝的Python 版本出現了不支持現象,先卸載已經安裝的Python,使用命令:agt-get remove python
卸載後再次嘗試安裝 python-setuptools,
再次使用命令:agt-get install python-setuptools
最後再次嘗試安裝 ceph-deploy:
使用命令:sudo apt-get install ceph-deploy
發現此次能夠成功安裝ceph-deploy。
3. 用無密碼的SSH鏈接到每一個Ceph節點來配置你的 ceph-deploy 管理節點. 保留密碼爲空。
建立密鑰,提示輸入的時候所有enter建。
ssh-keygen
將密鑰拷貝到其餘osd設備上去。
ssh-copy-id ceph@cephmon
ssh-copy-id ceph@osd0
ssh-copy-id ceph@osd1
4. 修改你的ceph-deploy 管理節點的 ~/.ssh/config 文件使它能像你建立的用戶(好比, ceph)同樣記錄至Ceph節點 .可能不存在 這個配置文件,可是你能夠建立一個這樣的配置文件。配置文件中的內容以下:
root@ test100:~/ceph-cluster# cat ~/.ssh/config
Host cephmon
User ceph
Port 22
Host osd0
User ceph
Port 22
Host osd1
User ceph
Port 22
root@ test100:~/ceph-cluster#
5. 建立一個本身的集羣目錄
mkdir ceph-cluster
cd ceph-cluster
6. 建立一個新的集羣(最後一個參數爲100 的hostname)
ceph-deploy new cephmon
7.修改配置文件 ceph.conf
增長
osd pool default size = 3 -----》設置副本個數,不建議超過osd數量
osd pool default min size = 1 --->設置可寫最小副本個數
osd pool default pg num = 333 ---》設置pool的pg個數
osd pool default pgp num = 333 --》設置pool的pgp_num 個數
8.分別在全部的設備上安裝ceph
ceph-deploy install cephmon osd0 osd1
注意安裝時可能會提示:
404 Not Found [IP: 91.189.91.14 80]
根據錯誤信息,定位是那一臺設備除了問題,在該設備上輸入命令確認:sudo apt-get install ceph,確認問題仍然是這個,須要更新apt-get,執行命令apt-get update。執行完成後 再次使用命令sudo apt-get install ceph。完成經過,說明問題解決。
9.在100 上建立監視線程,而且初始化:
ceph-deploy mon create-initial
10.修改密鑰文件權限:
A chmod 777 ceph.client.admin.keyring
B sudo chmod 777 /etc/ceph/ceph.client.admin.keyring
11.列出osd0 ,osd1上面能夠用的磁盤:
ceph-deploy disk list osd0 osd1
12.格式化osd0,osd1上的vdb盤爲xfs
ceph-deploy disk zap osd0:vdb
ceph-deploy disk zap osd1:vdb
13.在osd設備上建立osd 線程:
ceph-deploy osd create osd0:vdb
ceph-deploy osd create osd1:vdb
14.拷貝配置文件到每一臺機器上
ceph-deploy admin cephmon osd0 osd1。
修改osd的重量和拓撲位置信息:
ceph osd crush set osd.0 1.0 root=default room=room0 host=host0
ceph osd crush set osd.1 1.0 root=default room=room0 host=host1
15. 查看ceph的安裝狀態:
Ceph –s
16.先建立一個pool,再 建立一個鏡像,該鏡像能夠提供給用戶使用
Rados create pool data
Rados lspools
rbd create foo --size 1024
客戶端掛載 ceph
1.在管理節點在hosts中添加 192.168.0.103 client
2. 在管理節點爲client 安裝ceph,最後一個參數爲主機名代替ip地址。
ceph-deploy install client //安裝客戶端的ceph
ceph-deploy admin cephclient //將客戶端添加到當前的集羣中
rbd create testdevice --size 40960 //建立塊設備
sudo rbd map testdevice --pool rbd --name client.admin //map rbd設備爲塊設備
sudo mkfs.ext4 -m0 /dev/rbd/rbd/testdevice //格式化map以後的塊設備
A sudo mkdir /mnt/ceph-block-devicesudo //建立掛載目錄
B sudo mount -t ext4 /dev/rbd/rbd/testdevice /mnt/ceph-block-devicesudo //掛載目錄
C cd /mnt/ceph-block-devicesudo //進入到文件夾中,能夠存取文件操做
總結:
這個是我第一次完成搭建ceph環境以後寫的,在搭建ceph環境以前,對ceph不是很瞭解,因此搭建過程當中反反覆覆,並且會遇到不少問題,好比搭建環境後ceph -s 命令查詢到大部分的pg都是非正常的狀況,花了一些時間去看了pg的東西,而後再反反覆覆的搭建,直到可以學習怎麼搭建一個健康的ceph環境,因此最初使用虛擬機來玩比較方便,清除環境完全。
我也是正在學習ceph的過程當中,若是有什麼問題 很歡迎和你們一塊兒討論。你們要是發現了問題歡迎及時糾正,留言