【mimic】ceph集群手动搭建-创新互联
1 核心组件介绍
创新互联建站专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,电信机房托管,电信机房托管,成都多线服务器托管等服务器托管服务。Object
Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
OSD
OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
PG
PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
Monitor
一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
RADOS
RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
Libradio
Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
CRUSH
CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
RBD
RBD全称RADOS block device,是Ceph对外提供的块设备服务。
RGW
RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
MDS
MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
CephFS
CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。
2 安装准备
操作系统:CentOS Linux release 7.4.1708 (Core)
内核版本:3.10.0-693.el7.x86_64
服务器使用规划
Node | Host Name | Ceph Deploy | Ceph Admin | Mon | OSD | MDS | MGR | RGW |
192.168.2.241 | node1 | √ | √ | √ | √ | √ | ||
192.168.2.242 | node2 | √ | √ | √ | √ | |||
192.168.2.243 | node3 | √ | √ | |||||
192.168.2.244 | node4 | √ | ||||||
192.168.2.245 | node5 | √ |
存储准备
node4、node5两个osd节点单独挂载一个5G大小的存储盘
目录规划
/install #用来存放安装文件
创建以上目录(node1)
mkdir /install依次修改主机名,xx请替换1-5
hostnamectl set-hostname nodexx配置免密访问(管理节点)
ssh-keygen ssh-copy-id node1 ssh-copy-id node2 ssh-copy-id node3 ssh-copy-id node4 ssh-copy-id node5修改主机hosts配置(管理节点)
vi /etc/hosts 192.168.2.241 node1 192.168.2.242 node2 192.168.2.243 node3 192.168.2.244 node4 192.168.2.245 node5同步hosts配置到其他节点
scp /etc/hosts node2:/etc/ scp /etc/hosts node3:/etc/ scp /etc/hosts node4:/etc/ scp /etc/hosts node5:/etc/关闭防火墙(所有节点)
setenforce 0 systemctl stop firewalld && systemctl disable firewalld时间同步(所有节点)
yum install ntp ntpdate -y ntpdate cn.pool.ntp.org systemctl enable ntpd systemctl start ntpd内核优化(node1)
vi /etc/sysctl.conf net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_max_tw_buckets =5000 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384同步到其他节点
scp /etc/sysctl.conf node2:/etc scp /etc/sysctl.conf node3:/etc scp /etc/sysctl.conf node4:/etc scp /etc/sysctl.conf node5:/etc vi /etc/security/limits.conf soft nofile 1024000 hard nofile 1024000 root soft nofile 1024000 root hard nofile 1024000同步到其他节点
scp /etc/security/limits.conf node2:/etc/security scp /etc/security/limits.conf node3:/etc/security scp /etc/security/limits.conf node4:/etc/security scp /etc/security/limits.conf node5:/etc/security生效配置(所有节点)
sysctl -p修改环境配置(所有节点)
echo "ulimit -HSn 102400" >> /etc/profile添加yum源
cat << EOM > /etc/yum.repos.d/ceph.repo [Ceph-SRPMS] name=Ceph SRPMS packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-aarch74] name=Ceph aarch74 packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/aarch74/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-x86_64] name=Ceph x86_64 packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/ enabled=1 gpgcheck=0 type=rpm-md EOM同步到其他节点
scp /etc/yum.repos.d/ceph.repo node2:/etc/yum.repos.d scp /etc/yum.repos.d/ceph.repo node3:/etc/yum.repos.d scp /etc/yum.repos.d/ceph.repo node4:/etc/yum.repos.d scp /etc/yum.repos.d/ceph.repo node5:/etc/yum.repos.d清理缓存(所有节点)
yum makecache3 集群部署
安装依赖(所有节点)
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm安装ceph(所有节点)
yum -y install epel-release ceph ceph-radosgw ceph-common deltarpm安装ceph-deploy(node1执行)
yum install -y ceph-deploy创建一个名称为mycluster的集群,如果没有指定--clster,默认名称为ceph,集群节点(mon)包括node{1,2,3}(node1执行)
cd /install ceph-deploy --cluster mycluster new node{1,2,3}修改ceph配置文件,增加网段(生产环境以实际为准,建议public和cluster使用不同的段)
vi ceph.conf public network = 192.168.2.0/24 cluster network = 192.168.2.0/24 mon_allow_pool_delete = true osd pool default size = 2 osd pool default min size = 1 osd pool default pg num = 64 osd pool default pgp num = 64创建和初始化监控节点并收集所有的秘钥(node1执行)
ceph-deploy mon create-initial将配置文件和管理秘钥复制到管理节点和ceph节点(node1执行)
ceph-deploy admin node{1,2,3,4,5}部署mgr(node1执行)
ceph-deploy mgr create node{1,2}部署osd(node1执行)
ceph-deploy osd create --data /dev/sdb node4 ceph-deploy osd create --data /dev/sdb node54 启用Dashboard
先查看dashboard状态
ceph mgr services启用dashboard
ceph mgr module enable dashboard生成自签名证书
ceph dashboard create-self-signed-cert cd /install openssl req \ -new -nodes \ -x509 \ -subj "/O=IT/CN=ceph-mgr-dashboard" \ -days 3650 \ -keyout dashboard.key \ -out dashboard.crt \ -extensions v3_ca启用证书
ceph config-key set mgr mgr/dashboard/crt -i dashboard.crt ceph config-key set mgr mgr/dashboard/key -i dashboard.key不用证书功能的时候,可以选择禁用证书
ceph config set mgr mgr/dashboard/ssl false注:更换证书后,需要重启dashboard
ceph mgr module disable dashboard ceph mgr module enable dashboard配置服务地址、端口(生产环境中,mgr的访问地址建议使用域名或者负载IP)
ceph config set mgr mgr/dashboard/server_addr 192.168.2.241 ceph config set mgr mgr/dashboard/server_port 8443创建用户
ceph dashboard set-login-credentials admin admin重启mgr
systemctl restart ceph-mgr@node1浏览器访问
https://192.168.2.241:84435 块存储
任意ceph集群主机执行
创建存储池,命名为ec,pg和pgs分配为64(这里只是测试,生产环境请按公式计算pg和pgs)
ceph osd pool create ec 64 64rbd方式启用该存储池
ceph osd pool application enable ec rbd创建用户client.ec,用于客户端挂载访问
ceph auth get-or-create client.ec \ mon 'allow r' \ osd 'allow rwx pool=ec' \ -o /etc/ceph/ceph.client.ec.keyring远端客户端挂载
检查客户端内核版本,内核版本建议在2.6.34以上版本
uname -r检查当前内核版本是否支持rbd
modprobe rbd && lsmod|grep rbd在hosts配置添加ceph集群主机映射
vi /etc/hosts 192.168.2.241 node1 192.168.2.242 node2 192.168.2.243 node3 192.168.2.244 node4 192.168.2.245 node5考虑到国外下载慢的问题,配置国内镜像源
cat << EOM > /etc/yum.repos.d/ceph.repo [Ceph-SRPMS] name=Ceph SRPMS packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-aarch74] name=Ceph aarch74 packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/aarch74/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-x86_64] name=Ceph x86_64 packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/ enabled=1 gpgcheck=0 type=rpm-md EOM清理缓存
yum makecache安装依赖
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm安装ceph客户端
yum -y install ceph-common将服务端生成的用户秘钥(client.ec)拷贝到客户端服务器
scp -r /etc/ceph/ceph.client.ec.keyring node5:/etc/ceph验证用户权限,由于没有使用admin账号,所以每次都需要指定访问用户
ceph -s --name client.ec在存储池ec上创建块设备(磁盘),命名为ec,分配大存储空间10G
rbd create ec/ec --size 10G --image-format 2 --image-feature layering --name client.ec查看创建的块设备
rbd info ec/ec --name client.ec 或 rbd info -p ec ec --name client.ec将块设备映射到本地磁盘
rbd map ec/ec --name client.ec格式化磁盘,可以选择格式化成ext4或xfs
mkfs.ext4 /dev/rbd0创建挂载目录
mkdir /ecdata将盘符挂载到该目录
mount /dev/rbd0 /ecdata查看挂载状态
df -h rbd showmapped扩容
rbd resize --size xxG pool-name/image-name扩容存储空间后,在客户端不会立即生效,需要在客户端执行如下操作
#针对ext文件系统,rbd0为映射的本地设备名 blockdev --getsize64 /dev/rbd0 resize2fs /dev/rbd0 #针对xfs文件系统,还需要执行如下命令,mnt为挂载点 xfs_growfs /mnt创建快照
rbd snap create ec/ec@ec-snap回滚快照(出现回滚失败时,需要先解除挂载和本地映射)
rbd snap rollback ec/ec@ec-snap克隆快照
rbd snap protect ec/ec@ec-snap rbd snap clone ec/ec@ec-snap new-ec-pool6 文件存储
服务端
部署mds(node1执行),启用文件存储时创建
ceph-deploy mds create node2创建存储池
ceph osd pool create cephfs_data 64 ceph osd pool create cephfs_metadata 64创建文件系统
ceph fs new cephfs cephfs_metadata cephfs_data查看MDS服务器状态
ceph mds stat创建用户
ceph auth get-or-create client.cephfs \ mon 'allow r' \ mds 'allow r,allow rw path=/' \ osd 'allow rw pool=cephfs_data' \ -o /etc/ceph/ceph.client.cephfs.keyring同步key到其他节点
scp /etc/ceph/ceph.client.cephfs.keyring node2:/etc/ceph scp /etc/ceph/ceph.client.cephfs.keyring node3:/etc/ceph查看用户key
ceph auth get-key client.cephfs客户端
挂载ceph文件系统(启用cephx认证后,必须指定授权用户),其中192.168.2.241为mon地址
mount -t ceph node1:6789:/ /data -o name=cephfs,secret=AQAHs9RdRVLkOBAAYl1JZqYupcHnORttIo+Udg==或
echo "AQAHs9RdRVLkOBAAYl1JZqYupcHnORttIo+Udg==" > /etc/ceph/cephfskey mount -t ceph node1:6789:/ /data -o name=cephfs,secretfile=/etc/ceph/cephfskey写入数据测试(1G)
dd if=/dev/zero of=/data/file2 bs=1M count=1024开机自动挂载
echo "node1:6789:/ /data/ ceph name=cephfs,secret=AQAHs9RdRVLkOBAAYl1JZqYupcHnORttIo+Udg==,_netdev,noatime 0 0" >> /etc/fstab或
echo "node1:6789:/ /data/ ceph name=cephfs,secretfile=/etc/ceph/cephfskey,_netdev,noatime 0 0" >> /etc/fstab另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:【mimic】ceph集群手动搭建-创新互联
当前链接:http://myzitong.com/article/geggs.html