CEPH 分布式存储部署手册 (Ubuntu 14.04)

Skyrim
Date:2016/12/16

[TOC]

1. 环境准备

1.1 环境架构图

Paste_Image.png
  • CEPH架构包含如下几个节点角色
    • ADMIN Node:管理节点
    • MON Node:监控节点/元数据MDS节点
    • OSD Node:存储节点

OS:Ubuntu 14.04.04

OSD节点磁盘结构

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节点网络结构

  • Eth0:Public Network
  • Eth1:Cluster Network

1.2 环境准备

1.2.1所有节点操作设置root免密码登录
       sudo visudo -f /etc/sudoers  

增加如下行,skyrim为用户名
skyrim ALL=(ALL) NOPASSWD:ALL

1.2.2 所有节点操作修改host文件

所有节点增加如下内容

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节点操作安装pssh工具
  apt-get install -y pssh
  • 设置以下别名:
   alias pssh='parallel-ssh'
    alias pscp='parallel-scp'
  • 创建host文件列表hosts.txt:

MON
N01
N02
N03
N04

1.2.4 所有节点操作创建ssh信任
  • 所有节点运行如下命令
   ssh-keygen
  • ADMIN节点复制public key到其它节点需在普通用户权限下执行,在对话窗口输入yes,然后输入对端用户密码。

      ssh-copy-id mon
      ssh-copy-id n01
      ssh-copy-id n02
      ssh-copy-id n03
    
  • 测试方式通过普通用户执行

pssh -h hosts uptime

如果全部结果都为SUCCESS,则说明正常工作。

1.2.5 ADMIN操作修改ububtu apt源
root@C01:~#nano /etc/apt/sources.list
  • 增加网易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

复制sources.list到其它节点

pscp -h hosts.txt /etc/apt/sources.list /etc/apt/
  • 刷新源
pssh -h hosts `sudo apt-get update`

如果全部结果都为SUCCESS,则说明正常工作。

1.3 安装ceph-deploy

  • 以下操作只需要在Admin节点执行,首先需要增加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的问题,因此我选择的是网易的国内镜像

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

生产环境还需要安装ntp服务,保证集群的时钟一致,这次只是为了测试,故省略这一步。另外由于ubuntu默认防火墙是关的,SELinux也没有安装,故不需要任何操作。使用centos安装时需要打开必要端口。

2.开始安装ceph集群

我们使用ceph-deploy部署,后续操作均在admin节点操作。 首先需要创建工作环境,该环境会保存所有的配置文件:

mkdir my-cluster
cd my-cluster

2.1 创建集群

ceph-deploy new mon

其中mon是monitor节点,执行该命令会生成ceph配置文件、monitor密钥文件以及日志文件。

2.2 修改默认冗余份数(此步骤只有在小于3个OSD节点时需要修改)

默认的冗余份数是3,如果是2节点需要设置为2,如果osd节点大于2,则此步骤省略。

修改ceph.conf文件,在[global]下增加以下内容:

osd pool default size = 2

2.3 配置网卡和网络(OSD节点单网卡请忽略

OSD节点是双网卡,因此需要设置使用的网卡和网络地址
修改ceph.conf文件,在[global]下增加以下内容:

Public Network = 192.168.1.0/24
Cluster Network = 10.10.100.0/24

2.4 开始安装ceph

注:因为CFW的问题,管理节点ceph-Deploy前Ceph镜像源修改非常重要,这里采用了网易镜像

    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

在所有节点开始安装ceph

ceph-deploy install adm mon n01 n02 n03

2.5初始化mon节点和收集密钥信息

ceph-deploy mon create-initial

执行完毕,目录应该有以下文件:

{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring
{cluster-name}.bootstrap-rgw.keyring

完成以上步骤,安装完成,但还没有配置osd节点。

2.6 配置osd节点

首先再次确认磁盘结构

OSD节点磁盘结构

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

以上步骤会清空磁盘的所有数据。 接下来创建osd,注意由于我们只是测试,故没有使用单独的磁盘作为journal,实际在生产环境下,需要配备SSD分区作为journal,能够最大化IO吞吐量

ceph-deploy osd create n01:sdb
ceph-deploy osd create n02:sdb
ceph-deploy osd create n03:sdb

2.7 配置admin节点

admin节点同时也作为我们的client节点,需要拷贝其他节点的配置文件以及密钥,使得不需要指定mon地址以及用户信息就可以直接管理我们的ceph集群,执行以下命令即可:

ceph-deploy admin adm mon n01 n02 n03
sudo chmod +r /etc/ceph/ceph.client.admin.keyring # 保证具有读取的密钥的权限

2.8 测试结果

运行以下命令:

ceph health

确认返回HEALTH_OK状态

ceph status

结果返回如下:

    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状态

ceph osd tree

确认所有osd节点up状态

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容