CEPH 分布式存儲部署手冊 (Ubuntu 14.04)

Skyrim
Date:2016/12/16

[TOC]

1. 環(huán)境準(zhǔn)備

1.1 環(huán)境架構(gòu)圖

Paste_Image.png
  • 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)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容