首页 > 其他 > 详细

Ceph 开源存储安装

时间:2017-04-01 22:15:47      阅读:454      评论:0      收藏:0      [点我收藏+]

测试架构信息:

Ceph-Admin172.17.0.50admin

Ceph-Mon172.17.0.40mon

Ceph-OSD01172.17.0.41osd01

Ceph-OSD02172.17.0.42osd02

CEph-OSD03172.17.0.43osd03

Ceph-OSD04172.17.0.44osd04

Ceph-OSD05172.17.0.45osd05

Ceph-MDS172.17.0.49msd



一、系统初始配置

安装系统centos 7.3 最小化安装


yum 源

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo



配置网络:

echo "DNS1=172.16.1.2" >> /etc/sysconfig/network-scripts/ifcfg-ens192
/etc/init.d/network restart



配置host文件:

echo "172.17.0.50 admin" >> /etc/hosts
echo "172.17.0.40 mon" >> /etc/hosts
echo "172.17.0.41 osd01" >> /etc/hosts
echo "172.17.0.42 osd02" >> /etc/hosts
echo "172.17.0.43 osd03" >> /etc/hosts
echo "172.17.0.44 osd04" >> /etc/hosts
echo "172.17.0.45 osd05" >> /etc/hosts
echo "172.17.0.49 msd" >> /etc/hosts
echo "172.17.0.60 ceph-client" >> /etc/hosts

更改电脑名,需重启:

hostnamectl set-hostname servername



配置adminSSH无密码登陆各节点:

ssh-keygen
ssh-copy-id root@mon
ssh-copy-id root@osd01
ssh-copy-id root@osd02
ssh-copy-id root@osd03
ssh-copy-id root@osd04
ssh-copy-id root@osd05
ssh-copy-id root@ceph-client



添加deploy源:

vim /etc/yum.repos.d/ceph.repo

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-kraken/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-kraken/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
yum update -y
yum install ceph-deploy -y



同步时间:

启用可选软件库:

 

yum -y install epel-release
yum install yum-plugin-priorities -y
yum install ntp ntpdate ntp-doc -y
yum install sysstat -y
yum install net-tools -y
yum install wget -y


配置防火墙:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6789:7100 -j ACCEPT


在各 Ceph 节点创建新用户:

ssh root@mon
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
ssh root@osd01
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
ssh root@osd02
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
ssh root@osd03
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
ssh root@osd04
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
ssh root@osd05
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser


确保各 Ceph 节点上新创建的用户都有 sudo 权限。

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser


允许无密码 SSH 登录

ssh-copy-id cephuser@mon
ssh-copy-id cephuser@osd01
ssh-copy-id cephuser@osd02
ssh-copy-id cephuser@osd03
ssh-copy-id cephuser@osd04
ssh-copy-id cephuser@osd05
ssh-copy-id cephuser@msd


修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件

vi ~/.ssh/config 
Host mon
   Hostname mon
   User cephuser
Host osd01
   Hostname osd01
   User cephuser
Host osd02
   Hostname osd02
   User cephuser
Host osd03
   Hostname osd03
   User cephuser
Host osd04
   Hostname osd04
   User cephuser
Host osd05
   Hostname osd05
   User cephuser


开放所需端口

firewall-cmd --zone=public --add-port=6789/tcp --permanent
firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent


不需要控制终端: 注释Defaults requiretty


Defaults requiretty修改为 #Defaults requiretty



关闭SELINUX

setenforce 0
vi /etc/selinux/config
SELINUX=disabled



二、存储集群


创建一个 Ceph 存储集群

mkdir my-cluster
cd my-cluster
ceph-deploy new mon



把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:

vi ./ceph.conf
osd pool default size = 2


如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段下

public network = {ip-address}/{netmask}
cluster network = {cluster-network/netmask}


安装ceph OSD

ceph-deploy install mon osd01 osd02 osd03


配置初始 monitor(s)、并收集所有密钥:

ceph-deploy mon create-initial



如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:

ceph-deploy purge osd02
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys   !!!!!!!!


添加两个 OSD:

ssh osd01
rm -rf /var/local/osd01
sudo mkdir /var/local/osd01
exit
ssh osd02
rm -rf /var/local/osd02
sudo mkdir /var/local/osd02
exit


然后与管理节点执行ceph-deploy 准备OSD

ceph-deploy osd prepare osd01:/dev/sdb osd02:/dev/sdb


激活osd:

ceph-deploy osd activate osd01:/dev/sdb osd02:/dev/sdb


用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

ceph-deploy admin admin mon osd01 osd02


确保你对 ceph.client.admin.keyring 有正确的操作权限

chmod +r /etc/ceph/ceph.client.admin.keyring
ceph health

查看OSD tree

ceph osd tree



设置ceph集群自启动

在各节点需要执行如下命令:

systemctl enable ceph-mon.target 
systemctl enable ceph-osd.target 
systemctl enable ceph.target
ssh mon "systemctl enable ceph-mon.target;systemctl enable ceph-osd.target;systemctl enable ceph.target"


CEPH操作命令:

ceph health
ceph -w  打印ceph信息
ceph df集群使用情况
ceph status集群状态
ceph -s
ceph osd tree
ceph osd stat
ceph osd dump
ceph quorum_statusmon的数量状态
ceph mds stat元数据状态
ceph mds dump状态信息
systemctl restart ceph-osd.target 重启osd 服务



三、扩展集群


添加OSD

ceph-deploy osd prepare osd03:/dev/sdb
ceph-deploy osd activate osd03:/dev/sdb
ceph -w


添加元数据服务器

ceph-deploy install mds
ceph-deploy mds create mds
ceph-deploy admin mds


添加 MONITORS

vi ceph.conf
public network = 172.17.0.0/23
ceph-deploy mon add osd01 osd02 osd03
ceph-deploy --overwrite-conf mon add osd03
ceph quorum_status --format json-pretty查看mon法定人数




添加 RGW 例程

ceph-deploy rgw create node1


RGW 例程默认会监听 7480 端口,可以更改该节点 ceph.conf 内与 RGW 相关的配置,如下:

[client]
rgw frontends = civetweb port=80





四、管理、维护

ceph 日志

/var/log/ceph
iostat -x
df -h
ceph osd stat
ceph health 、 ceph -s 、或 ceph -w
systemctl restart ceph-osd.target 重启osd 服务


最大线程数

sysctl -w kernel.pid_max=4194303
配置 kernel.pid_max 写入配置文件 /etc/sysctl.conf
kernel.pid_max = 4194303


命令获取归置组列表

ceph pg dump

要根据指定归置组号查看哪些 OSD 位于 Acting Set 或 Up Set 里,执行

ceph pg map {pg-num}

其结果会告诉你 osdmap 版本( eNNN )、归置组号( {pg-num} )、 Up Set 内的 OSD ( up[] )、和 Acting Set 内的 OSD ( acting[] )。

osdmap eNNN pg {pg-num} -> up [0,1,2] acting [0,1,2]


修改单个节点的配置文件ceph.conf等如下

ceph-deploy --overwrite-conf config push mon osd01 osd02 osd03 osd04



添加心跳地址

cluster network = 172.17.0.0/23




五、使用


创建存储池:

ceph osd pool create {pool-name} pg_num
ceph osd pool create poolceph01 128

确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:


少于 5 个 OSD 时可把 pg_num 设置为 128

OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512

OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096

OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值

ceph osd lspools列出存储池
ceph-mds -i mds -d



存入/检出对象数据

ceph osd map {poolname} {object-name}


在管理节点上,通过 ceph-deploy 把 Ceph 安装到 ceph-client 节点。

ceph-deploy install ceph-client


在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client 。

ceph-deploy admin ceph-client




创建 CEPH 文件系统


关于存储池的管理请参考 存储池 。例如,要用默认设置为文件系统创建两个存储池,你可以用下列命令:

$ ceph osd pool create cephfs_data <pg_num>
$ ceph osd pool create cephfs_metadata <pg_num>

创建好存储池后,你就可以用 fs new 命令创建文件系统了:

$ ceph fs new <fs_name> <metadata> <data>
例如:
$ ceph fs new cephfs cephfs_metadata cephfs_data
$ ceph fs ls

name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

文件系统创建完毕后, MDS 服务器就能达到 active 状态了,比如在一个单 MDS 系统中:

$ ceph mds stat
e5: 1/1/1 up {0=a=up:active}


用内核驱动挂载 CEPH 文件系统


要挂载 Ceph 文件系统,如果你知道监视器 IP 地址可以用 mount 命令、或者用 mount.ceph 工具来自动解析监视器 IP 地址。例如:

sudo mkdir /mnt/mycephfs
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs

要挂载启用了 cephx 认证的 Ceph 文件系统,你必须指定用户名、密钥。

sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==

前述用法会把密码遗留在 Bash 历史里,更安全的方法是从文件读密码。例如:

sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret

关于 cephx 参见认证。


要卸载 Ceph 文件系统,可以用 umount 命令,例如:

sudo umount /mnt/mycephfs

---

要把 Ceph 文件系统挂载为用户空间文件系统,可以用 ceph-fuse 命令,例如:

sudo mkdir /home/usernname/cephfs
sudo ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs



创建块设备:

ceph-deploy install ceph-client
ceph-deploy admin ceph-client



配置块设备


在 ceph-client 节点上创建一个块设备 image 。

rbd create foo --size 4096 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
rbd create foo --size 4096 -m mon -k /etc/ceph/ceph.client.admin.keyring


在 ceph-client 节点上,把 image 映射为块设备。

sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
rbd map foo --name client.admin -m mon -k /etc/ceph/ceph.client.admin.keyring


在 ceph-client 节点上,创建文件系统后就可以使用块设备了。

sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo

此命令可能耗时较长。


在 ceph-client 节点上挂载此文件系统。

sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device


查看块信息

rbd ls


#新建rbd 块:

rbd create test001 --size 100G --image-format 2 --image-feature  layering
rbd ls
rbd map test001
mkfs.ext4 -f /dev/rdb0
mount /dev/rbd0 /mnt/data



dd测速:

dd if=/dev/zero of=/mnt/mycephfs/zero bs=8k count=200000 conv=fdatasync



同步配置文件

ceph-deploy --overwrite-conf admin osd01





六、高级应用


缓存设置

冷热分层


学习中





本文出自 “小地方” 博客,请务必保留此出处http://lazypaul.blog.51cto.com/1032344/1912400

Ceph 开源存储安装

原文:http://lazypaul.blog.51cto.com/1032344/1912400

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!