Skyrim
Date:2016/12/16
[TOC]
1. 環(huán)境準(zhǔn)備
1.1 環(huán)境架構(gòu)圖

- CEPH架構(gòu)包含如下幾個節(jié)點角色
- ADMIN Node:管理節(jié)點
- MON Node:監(jiān)控節(jié)點/元數(shù)據(jù)MDS節(jié)點
- OSD Node:存儲節(jié)點
OS:Ubuntu 14.04.04
OSD節(jié)點磁盤結(jié)構(gòu)
root@C01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 243M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 15.8G 0 part
├─C01--vg-root (dm-0) 252:0 0 13.8G 0 lvm /
└─C01--vg-swap_1 (dm-1) 252:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk #OSD Disk
sr0 11:0 1 579M 0 rom
OSD節(jié)點網(wǎng)絡(luò)結(jié)構(gòu)
- Eth0:Public Network
- Eth1:Cluster Network
1.2 環(huán)境準(zhǔn)備
1.2.1所有節(jié)點操作設(shè)置root免密碼登錄
sudo visudo -f /etc/sudoers
增加如下行,skyrim為用戶名
skyrim ALL=(ALL) NOPASSWD:ALL
1.2.2 所有節(jié)點操作修改host文件
所有節(jié)點增加如下內(nèi)容
192.168.1.40 ADM
192.168.1.41 MON
192.168.1.60 N01
192.168.1.61 N02
192.168.1.62 N03
1.2.3 ADMIN節(jié)點操作安裝pssh工具
apt-get install -y pssh
- 設(shè)置以下別名:
alias pssh='parallel-ssh'
alias pscp='parallel-scp'
- 創(chuàng)建host文件列表hosts.txt:
MON
N01
N02
N03
N04
1.2.4 所有節(jié)點操作創(chuàng)建ssh信任
- 所有節(jié)點運行如下命令
ssh-keygen
-
ADMIN節(jié)點復(fù)制public key到其它節(jié)點
需在普通用戶權(quán)限下執(zhí)行,在對話窗口輸入yes,然后輸入對端用戶密碼。ssh-copy-id mon ssh-copy-id n01 ssh-copy-id n02 ssh-copy-id n03 測試方式
通過普通用戶執(zhí)行
pssh -h hosts uptime
如果全部結(jié)果都為SUCCESS,則說明正常工作。
1.2.5 ADMIN操作修改ububtu apt源
root@C01:~#nano /etc/apt/sources.list
- 增加網(wǎng)易APT源
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
復(fù)制sources.list到其它節(jié)點
pscp -h hosts.txt /etc/apt/sources.list /etc/apt/
- 刷新源
pssh -h hosts `sudo apt-get update`
如果全部結(jié)果都為SUCCESS,則說明正常工作。
1.3 安裝ceph-deploy
- 以下操作只需要在
Admin節(jié)點執(zhí)行,首先需要增加ceph源:
安裝ceph apt key
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc)
main | sudo tee /etc/apt/sources.list.d/ceph.list
注意: ceph-stable-release是選擇安裝的版本,我部署時選擇的是jewel!最新版本為infernalis!同時由于CFW的問題,因此我選擇的是網(wǎng)易的國內(nèi)鏡像
echo deb http://mirrors.163.com/ceph/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
- 安裝ceph-deploy:
sudo apt-get update && sudo apt-get install -y ceph-deploy
生產(chǎn)環(huán)境還需要安裝ntp服務(wù),保證集群的時鐘一致,這次只是為了測試,故省略這一步。另外由于ubuntu默認防火墻是關(guān)的,SELinux也沒有安裝,故不需要任何操作。使用centos安裝時需要打開必要端口。
2.開始安裝ceph集群
我們使用ceph-deploy部署,后續(xù)操作均在admin節(jié)點操作。 首先需要創(chuàng)建工作環(huán)境,該環(huán)境會保存所有的配置文件:
mkdir my-cluster
cd my-cluster
2.1 創(chuàng)建集群
ceph-deploy new mon
其中mon是monitor節(jié)點,執(zhí)行該命令會生成ceph配置文件、monitor密鑰文件以及日志文件。
2.2 修改默認冗余份數(shù)(此步驟只有在小于3個OSD節(jié)點時需要修改)
默認的冗余份數(shù)是3,如果是2節(jié)點需要設(shè)置為2,如果osd節(jié)點大于2,則此步驟省略。
修改ceph.conf文件,在[global]下增加以下內(nèi)容:
osd pool default size = 2
2.3 配置網(wǎng)卡和網(wǎng)絡(luò)(OSD節(jié)點單網(wǎng)卡請忽略)
OSD節(jié)點是雙網(wǎng)卡,因此需要設(shè)置使用的網(wǎng)卡和網(wǎng)絡(luò)地址
修改ceph.conf文件,在[global]下增加以下內(nèi)容:
Public Network = 192.168.1.0/24
Cluster Network = 10.10.100.0/24
2.4 開始安裝ceph
注:因為CFW的問題,管理節(jié)點ceph-Deploy前Ceph鏡像源修改
非常重要,這里采用了網(wǎng)易鏡像
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-jewel/
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
在所有節(jié)點開始安裝ceph
ceph-deploy install adm mon n01 n02 n03
2.5初始化mon節(jié)點和收集密鑰信息
ceph-deploy mon create-initial
執(zhí)行完畢,目錄應(yīng)該有以下文件:
{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring
{cluster-name}.bootstrap-rgw.keyring
完成以上步驟,安裝完成,但還沒有配置osd節(jié)點。
2.6 配置osd節(jié)點
首先再次確認磁盤結(jié)構(gòu)
OSD節(jié)點磁盤結(jié)構(gòu)
root@C01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 243M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 15.8G 0 part
├─C01--vg-root (dm-0) 252:0 0 13.8G 0 lvm /
└─C01--vg-swap_1 (dm-1) 252:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk #OSD Disk
sr0 11:0 1 579M 0 rom
格式化磁盤,注意我們使用的是/dev/sdb:
ceph-deploy disk zap n01:sdb
ceph-deploy disk zap n02:sdb
ceph-deploy disk zap n03:sdb
以上步驟會清空磁盤的所有數(shù)據(jù)。 接下來創(chuàng)建osd,注意由于我們只是測試,故沒有使用單獨的磁盤作為journal,
實際在生產(chǎn)環(huán)境下,需要配備SSD分區(qū)作為journal,能夠最大化IO吞吐量。
ceph-deploy osd create n01:sdb
ceph-deploy osd create n02:sdb
ceph-deploy osd create n03:sdb
2.7 配置admin節(jié)點
admin節(jié)點同時也作為我們的client節(jié)點,需要拷貝其他節(jié)點的配置文件以及密鑰,使得不需要指定mon地址以及用戶信息就可以直接管理我們的ceph集群,執(zhí)行以下命令即可:
ceph-deploy admin adm mon n01 n02 n03
sudo chmod +r /etc/ceph/ceph.client.admin.keyring # 保證具有讀取的密鑰的權(quán)限
2.8 測試結(jié)果
運行以下命令:
ceph health
確認返回HEALTH_OK狀態(tài)
ceph status
結(jié)果返回如下:
cluster 2a5b2748-6b23-4609-9614-1e838e11597c
health HEALTH_OK
monmap e1: 1 mons at {mon=192.168.1.41:6789/0}
election epoch 3, quorum 0 mon
osdmap e16: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds
pgmap v52: 64 pgs, 1 pools, 57 bytes data, 4 objects
101 MB used, 45945 MB / 46046 MB avail
64 active+clean
確認返回active+clean狀態(tài)
ceph osd tree
確認所有osd節(jié)點up狀態(tài)