设为首页收藏本站

追梦Linux

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 368|回复: 0

Ceph集群部署

[复制链接]

482

主题

485

帖子

16万

积分

CEO

Rank: 9Rank: 9Rank: 9

积分
168140

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-1-30 17:12:14 | 显示全部楼层 |阅读模式
Ceph集群部署
一、环境准备
1、CentOS7 虚拟机3台,分别配置好主机名,且在/etc/hosts写入如下文件
192.168.2.191 node1
192.168.2.192 node2
192.168.2.193 node3
三台机器做ssh免密互信,node1作为部署节点,通过其安装 ceph到三台机器
2、node1上操作
1)创建 ceph用户
useradd -d /home/ceph -m ceph
echo ceph |passwd --stdin ceph
echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph
禁用 requiretty
在某些发行版(如 CentOS )上,执行 ceph-deploy 命令时,如果你的 Ceph 节点默认设置了 requiretty 那就会遇到报错。可以这样禁用此功能:
sudo visudo
找到 Defaults requiretty 选项,把它改为 Defaults:ceph !requiretty ,这样 ceph-deploy 就能用 ceph 用户登录并使用 sudo 了。
ceph-deploy节点安装部署
2)添加yum源
cat >> /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
EOF
安装ceph-deploy
yum makecache
yum install ceph-deploy –y
3)关闭防火墙或者放行6789 端口
我这为了实验方便选择直接关闭防火墙和selinux
systemctl  stop firewalld

setenforce 0  

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config





二、创建ceph集群
1、创建集群目录(目录随意,你开心就好)
mkdir /opt/ceph
cd  /opt/ceph
初始化集群,告诉 ceph-deploy 哪些节点是监控节点,命令成功执行后会在 ceph-cluster 目录下生成 ceph.conf,ceph.log, ceph.mon.keyring 等相关文件:
1)创建集群
ceph-deploy new node1 node2 node3


2)修改ceph.conf文件添加以下内容
mon_clock_drift_allowed = 2
mon_clock_drift_warn_backoff = 30
max_open_files =131072
osd_pool_default_size = 3 //副本数
osd_pool_default_min_size = 1 //最小副本数
osd_journal_size = 20000 //journal大小,osd journal size = {2 * (expected throughput * filestore max sync interval)},即osd journal的大小应该设置为(磁盘的带宽 * 同步时间) 的2倍
osd_scrub_begin_hour=21 //scrub执行开始时间
osd_scrub_end_hour = 7 //scrub执行的结束时间
osd_max_write_size = 500 //OSD一次可写入的最大值(MB)
osd_client_message_size_cap = 2147483648 //客户端允许在内存中的最大数据(bytes)
osd_deep_scrub_interval = 131072 //在Deep Scrub时候允许读取的字节数(bytes)
osd_deep_scrub_stride = 131072 //在Deep Scrub时候允许读取的字节数(bytes)
osd_op_threads = 8 //OSD进程操作的线程数
osd_disk_threads = 4 //OSD密集型操作例如恢复和Scrubbing时的线程
osd_map_cache_size = 1024 //保留OSD Map的缓存(MB)
filestore_max_sync_interval = 15 //从日志到数据盘最大同步间隔(seconds)
filestore_min_sync_interval = 10 //从日志到数据盘最小同步间隔(seconds)
filestore_queue_max_ops = 25000 //数据盘最大接受的操作数
filestore_queue_max_bytes = 104857600 //数据盘一次操作最大字节数(bytes),J版默认是这个值,可不设。filestore_queue_committing_max_ops 和filestore_queue_committing_max_bytes这两个参数对可以checkpoint的文件系统如Btrfs,ZFS有用,对于XFS没有作用。
filestore_op_threads = 32 // 并发文件系统操作数
journal_max_write_bytes = 1073714824 //journal一次性写入的最大字节数(bytes)
journal_max_write_entries = 10000 //journal一次性写入的最大记录数
rbd_cache_size = 268435456 //RBD缓存大小(bytes)
rbd_cache_max_dirty = 134217728 //缓存为write-back时允许的最大dirty字节数(bytes),如果为0,使用write-through
rbd_cache_max_dirty_age = 5 //在被刷新到存储盘前dirty数据存在缓存的时间(seconds)
osd_recovery_op_priority = 1 //恢复操作优先级,取值1-63,值越高占用资源越高
osd_backfill_scan_min = 4
osd_backfill_scan_max = 32
osd_recovery_max_active = 1
mon_osd_down_out_subtree_limit = host //默认是rack,改成host后,整机故障不会出现recovery后再backfill,此参数需求权衡
注:以上参数均为实践比对过,如无特别必要请不要修改【某云计算公司--云计算存储大神写的】
2、集群部署
1)在三个节点都部署
ceph-deploy install  node1 node2 node3 --repo- url=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/ --gpg-url=http://mirrors.aliyun.com/ceph/keys/release.asc
2)创建监控服务
ceph-deploy mon create-initial
注:如提示权限不足等可执行ceph-deploy --overwrite-conf mon create node1 nod2 node3覆盖原监控器
3)分发密钥,如不希望除ceph-deploy节点外,其余服务器有管理集群权限请忽略此步骤
ceph-deploy admin node1 node2 node3
三、添加OSD节点
分别为三个机器各添加一块磁盘,我这里添加的设备名均为sdb 8G
1、以下操作在node1节点上
chown ceph:ceph -R /dev/sd*
chmod 777 /etc/rc.local
echo “chown ceph:ceph -R /dev/sd*”>>/etc/rc.local
cd /opt/ceph

初始化ceph,创建osd存储节点
ceph-deploy --overwrite-conf osd prepare node1:/dev/sdb node2:/dev/sdb node3:/dev/sdb

激活osd
ceph-deploy osd activate node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1

df -h
/dev/sdb1            3.0G  168M  2.9G   6% /var/lib/ceph/osd/ceph-0
修改/etc/fstab添加osd对应磁盘挂载目录

/dev/sdb1  /var/lib/ceph/osd/ceph-0 xfs
rw,nodev,noatime,nodiratime,nobarrier,inode64 0 0

2、查看集群状态
ceph osd tree
ID WEIGHT  TYPE NAME      UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.00870 root default                                    
-2 0.00290     host node1                                   
0 0.00290         osd.0       up  1.00000          1.00000
-3 0.00290     host node2                                   
1 0.00290         osd.1       up  1.00000          1.00000
-4 0.00290     host node3                                   
2 0.00290         osd.2       up  1.00000          1.00000
三个节点执行ceph health,提示HEALTH_OK 到此就完成了


四、添加块存储到 ceph-client 节点
1、添加如下到node1,且node1与ceph-client互信
192.168.2.194    ceph-client

2、在node1通过ceph-deploy把ceph安装到ceph-client
ceph-deploy install ceph-client

通过ceph-deploy拷贝配置文件和 ceph.client.admin.keyring到ceph-client
ceph-deploy admin ceph-client

设置密钥权限 chmod +r/etc/ceph/ceph.client.admin.keyring
3、配置块设备
1) 在 ceph-client 节点上创建一个块设备 image
参数 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
rbd create foo --size 4096 -m 192.168.2.191  -k /etc/ceph/ceph.client.admin.keyring

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

参数 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]

rbd map foo --name client.admin -m 192.168.2.191  -k /etc/ceph/ceph.client.admin.keyring

这里如果报错,需要先执行
rbd feature disable  foo exclusive-lock  object-map  fast-diff  deep-flatten

3) 在 ceph-client 节点上,创建文件系统后就可以使用块设备了
mkfs.ext4 -m0  /dev/rbd0

4) 在 ceph-client 节点上挂载此文件系统
mkdir /mnt/ceph-block-device
mount /dev/rbd0 /mnt/ceph-block-device
5)检查是否挂载上
df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   17G  1.4G   16G   8% /
devtmpfs             478M     0  478M   0% /dev
tmpfs                489M     0  489M   0% /dev/shm
tmpfs                489M  6.7M  482M   2% /run
tmpfs                489M     0  489M   0% /sys/fs/cgroup
/dev/sda1           1014M  139M  876M  14% /boot
tmpfs                 98M     0   98M   0% /run/user/0
/dev/rbd0            3.9G   16M  3.8G   1% /mnt/ceph-block-device
到这里块存储就创建好了。



QQ|小黑屋|手机版|Archiver|追梦Linux ( 粤ICP备14096197号  点击这里给我发消息

GMT+8, 2019-3-25 18:39 , Processed in 0.288683 second(s), 30 queries .

Powered by 追梦Linux! X3.3 Licensed

© 2015-2017 追梦Linux!.

快速回复 返回顶部 返回列表