ceph文件系统搭建

十点
2021-07-20 / 1 评论 / 973 阅读 / 正在检测是否收录...
/
软件简介

Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。2010年3 月,Linus Torvalds将Ceph client合并到内 核2.6.34中。IBM开发者园地的一篇文章 探讨了Ceph的架构,它的容错实现和简化海量数据管理的功能。

实验环境
IP备注
192.168.1.163ceph1
192.168.1.105ceph2
192.168.1.167ceph3

全局配置

配置hosts文件指定记录

krbnw2yt.png

时间同步
date
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更新ceph源
wget -q -O- 'http://mirrors.163.com/ceph/keys/release.asc' | sudo apt-key add -
echo deb http://mirrors.163.com/ceph/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
echo deb http://mirrors.163.com/ceph/debian-octopus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

apt-get update
安装openssh-server
apt-get install -y openssh-server
安装ceph相关包
apt-get install -y ceph ceph-osd ceph-mds ceph-mon radosgw

ceph deploy节点环境准备

安装ceph-deploy
apt-get install python3 python3-pip -y
mkdir /home/cephadmin
git clone https://github.com/ceph/ceph-deploy.git
cd ceph-deploy
pip3 install setuptools
python3 setup.py install
设置deploy节点和其他节点免密
sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
service sshd reload
ssh-keygen
ssh-copy-id -o StrictHostKeyChecking=no root@ceph1
ssh-copy-id -o StrictHostKeyChecking=no root@ceph2
ssh-copy-id -o StrictHostKeyChecking=no root@ceph3
创建OSD
ceph-deploy new ceph1 ceph2 ceph3
ceph-deploy --overwrite-conf mon create-initial
ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3
ceph-deploy disk zap ceph1 /dev/sdb 这里需要根据自己盘符来 
ceph-deploy disk zap ceph2 /dev/sdb
ceph-deploy disk zap ceph3 /dev/sdb
for disk in /dev/sdb;do ceph-deploy --overwrite-conf osd create ceph1 --data $disk;done
for disk in /dev/sdb;do ceph-deploy --overwrite-conf osd create ceph2 --data $disk;done
for disk in /dev/sdb;do ceph-deploy --overwrite-conf osd create ceph3 --data $disk;done
创建cephfs文件系统

mds定义从 mgr定义主 我这里是多主

ceph-deploy mds create ceph3 
ceph-deploy mgr create ceph1 ceph2
ceph --verbose osd pool create cephfs_data 100
ceph --verbose osd pool create cephfs_metadata 100
ceph --verbose fs new cephfs cephfs_metadata cephfs_data
挂载文件系统
任意ceph节点获取key
cat ceph.client.admin.keyring | grep key | awk -F ' ' '{print $3}'
挂载
mount -t ceph 192.168.1.163:6789:/ /mnt/ceph -o name=admin,secret=key

存储池(Pool)

副本数
1. 打印存储池列表
# ceph osd lspools
2. 查看存储池副本数
# ceph osd pool get pool_name size
3. 设置存储池副本数
# ceph osd pool set pool_name size 3
空间大小
#  ceph df
--- RAW STORAGE ---
CLASS  SIZE     AVAIL   USED     RAW USED  %RAW USED
hdd    600 GiB  93 GiB  504 GiB   507 GiB      84.55
TOTAL  600 GiB  93 GiB  504 GiB   507 GiB      84.55
 
--- POOLS ---
POOL                   ID  PGS  STORED   OBJECTS  USED     %USED  MAX AVAIL
device_health_metrics   1    1      0 B        0      0 B      0    264 MiB
cephfs_data             2  128  252 GiB   64.51k  504 GiB  99.85    396 MiB
cephfs_metadata         3   16  3.0 MiB       23   10 MiB   1.30    264 MiB

图示化工具部署

配置Ceph Dashboard
1、在每个mgr节点安装
aptinstall ceph-mgr-dashboard -y
2、开启mgr功能
ceph mgr module enable dashboard
3、生成并安装自签名的证书
ceph dashboard create-self-signed-cert  
4、创建一个dashboard登录用户名密码
ceph dashboard ac-user-create admin -i test
5、查看服务访问方式
ceph mgr services
"dashboard": "https://apt:8443/"
开启prometheus监控
# ceph mgr module enable prometheus
# ceph mgr services
{
    "dashboard": "http://ceph1:8444/",
    "prometheus": "http://ceph1:9283/"
}
安装prometheus
1.下载解压
wget https://github.com/prometheus/prometheus/releases/download/v2.8.0/prometheus-2.8.0.linux-amd64.tar.gz
tar xvzf prometheus-2.8.0.linux-amd64.tar.gz
2.修改配置文件
vim prometheus.yml
  - job_name: 'ceph'
    static_configs:
    - targets: ['localhost:9283']
3.启动
nohup ./prometheus &

有数据即可
krbp84c9.png

安装grafana
apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_8.0.6_amd64.deb
dpkg -i grafana_8.0.6_amd64.deb

krbp94on.png

本文共 353 个字数,平均阅读时长 ≈ 1分钟
点赞
236
海报
赞赏

评论 (1)

取消
  1. 头像
    Lv.1    
    iPhone · QQ Browser

    画图

    回复