ceph 安装过程
安装依赖:
yum install -y yum-utils && yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && yum install --nogpgcheck -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm -f /etc/yum.repos.d/dl.fedoraproject.org*
搭建环境和初始化系统参见一下网址:http://ceph.org.cn/
http://docs.ceph.org.cn/start/quick-start-preflight/
ceph-deploy new mon-node1 mon-node2 mon-node3 #初始化监控集群
编辑配置文件:
vim ceph.conf
osd pool default min sisz=2
osd pool default size = 3
public_network = 10.0.0.0/24
cluster network=192.168.107.0/24
ceph-deploy install mon-node1 mon-node2 mon-node3 data-node1 data-node2 data-node3 #安装集群
ceph-deploy mon create-initial #初始化集群
ceph-deploy gatherkeys mon #生成集群钥匙
sudo ceph-create-keys --id mon #检查生成的钥匙
ceph-deploy mon create-initial #初始化集群监控 生成集群钥匙
需要格式化:data上的硬盘
支持格式是:xfs和btrfs
使用mkfs.btrfs -f /dev/sdb1 或者 mkfs.xfs -f /dev/sdb1
ceph-deploy osd prepare data-node1:/osd1 #制作存储空间
ceph-deploy osd activate data-node1:/osd1 #激活存储空间 激活osd进程,一个进程管理一个分区或者磁盘
ceph-deploy admin mon-node1 mon-node2 mon-node3 data-node1 data-node2 data-node3 # 拷贝配置文件到每一台机器上
sudo chmod +r /etc/ceph/ceph.client.admin.keyring #给钥匙加权限
常用命令:
ceph-deploy --overwrite-conf config push mon-node1 mon-node2 mon-node3 data-node1 data-node2 data-node3
ceph mon remove node1 #删除一个mon节点
ceph mon add node1 node1_ip #添加一个mon节点
网关的安装:
一、添加radosgw(civetweb方式)
1、创建网关实例的数据目录
mkdir /var/lib/ceph/radosgw
mkdir /var/lib/ceph/radosgw/ceph-rgw.{name}
2、创建启动文件和done文件
touch /var/lib/ceph/radosgw/ceph-rgw.{name}/done
touch /var/lib/ceph/radosgw/ceph-rgw.{name}/systemd
3、创建用户使用的密钥
ceph auth get-or-create client.rgw.node3 osd "allow rwx" mon "allow rw" -o /var/lib/ceph/radosgw/ceph-rgw.{name}/keyring
cp /var/lib/ceph/radosgw/ceph-rgw.{name}/keyring /etc/ceph/ceph.client.rgw.{name}.keyring
ceph-deploy install --rgw mon-node1 mon-node2 mon-node3
简单集群操作:
ceph health # 查看集群状态
ceph health detail #查看集群健康状态细节
ceph -s #查看进程状态
ceph -w #查看实时运行状态
ceph osd tree # 查看osd进程树
列出储存池:
ceph df #查看存储空间
ceph auth list #查看ceph集群中的认证用户及相关的key
ceph auth del osd.0 #删除集群中的一个认证用户
ceph auth get client.admin #查看一个用户的详细权限信息
sudo ceph daemon mon.mon-node1 config show | more #查看集群的详细配置
新增一个客户端用户:
ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key
修改一个用户权限:
ceph auth get client.john
ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
mon的命令:
ceph mon stat #查看mon的状态信息
ceph quorum_status #查看mon的选举状态
ceph mon dump #查看mon的映射信息
ceph mon remove node1 #删除一个mon节点
ceph daemon mon.node1 mon_status #查看mon的详细状态
osd的命令:
ceph osd stat #查看ceph osd运行状态
ceph osd dump #查看osd映射信息
ceph osd tree #查看osd的目录树
ceph osd down 0 #down掉一个osd硬盘
ceph osd rm 0 #在集群中删除一个osd硬盘
ceph osd crush rm osd.0 #在集群中删除一个osd 硬盘 crush map
ceph osd crush rm node1 #在集群中删除一个osd的host节点
ceph osd out osd.3 #把一个osd节点逐出集群
ceph osd in osd.3 #把逐出的osd加入集群
设置权重:
ceph osd getmaxosd #查看最大osd的个数 max_osd = 4 in epoch 514默认最大是4个osd节点
ceph osd setmaxosd 10 #设置最大的osd的个数(当扩大osd节点的时候必须扩大这个值)
ceph osd crush set 3 3.0 host=node4 #设置osd crush的权重 ceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]
ceph osd reweight 3 0.5 #设置osd的权重
msd的命令:
ceph mds stat #查看msd状态
ceph mds dump #查看msd的映射信息
ceph mds rm 0 mds.node1 #删除一个mds节点
集群操作:
ceph osd pause #暂停osd (暂停后整个集群不再接收数据)
ceph osd unpause #再次开启osd (开启后再次接收数据)
PG组操作:
ceph pg dump #查看pg组的映射信息
ceph pg map 0.3f #查看一个PG的map
ceph pg stat #查看PG状态
ceph pg 0.26 query #查询一个pg的详细信息
ceph pg dump --format plain #显示一个集群中的所有的pg统计
ceph pg {pg-id} mark_unfound_lost revert #恢复一个丢失的pg
ceph pg dump_stuck inactive|unclean|stale #显示非正常状态的pg
pool操作:
ceph osd lspools #查看ceph集群中的pool数量
ceph osd pool create jiayuan 100 #在ceph集群中创建一个pool
ceph osd pool set-quota data max_objects 10000 #为一个ceph pool配置配额
ceph osd pool delete jiayuan jiayuan --yes-i-really-really-mean-it #集群名字需要重复两次 #在集群中删除一个pool
rados df #显示集群中pool的详细信息
ceph osd pool mksnap data date-snap #给一个pool创建一个快照
ceph osd pool rmsnap data date-snap #删除pool的快照
ceph osd pool get data pg_num #查看data池的pg数量
ceph osd pool set data target_max_bytes 100000000000000 #设置data池的最大存储空间为100T(默认是1T)
ceph osd pool set data size 3 #设置data池的副本数是3
ceph osd pool set data min_size 2 #设置data池能接受写操作的最小副本为2
ceph osd dump | grep 'replicated size' #查看集群中所有pool的副本尺寸
ceph osd pool set data pg_num 100 #设置一个pool的pg数量
ceph osd pool set data pgp_num 100 #设置一个pool的pgp数量
rados和rbd指令:
rados lspools #查看ceph集群中有多少个pool
rados df #查看ceph集群中有多少个pool,并且每个pool容量及利用情况
rados mkpool test #创建一个pool
rados ls -p volumes | more #查看ceph pool中的ceph object (这里的object是以块形式存储的)
rados create test-object -p test #创建一个对象object
rados rm test-object-1 -p test #删除一个对象
rbd ls images #查看ceph中一个pool里的所有镜像
rbd ls volumes
rbd info -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a #查看ceph pool中一个镜像的信息
rbd create -p test --size 10000 zhanguo #在test池中创建一个命名为zhanguo的10000M的镜像
rbd -p test info zhanguo #查看新建的镜像的信息
rbd rm -p test lizhanguo #删除一个镜像
rbd resize -p test --size 20000 zhanguo #调整一个镜像的尺寸
rbd -p test info zhanguo #调整后的镜像大小
rbd snap create test/zhanguo@zhanguo123 #池/镜像@快照 #给一个镜像创建一个快照
rbd snap ls -p test zhanguo #查看
rbd info test/zhanguo@zhanguo123 #查看
rbd snap ls -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4 #查看一个镜像文件的快照
rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12 #删除一个镜像文件的一个快照快照 快照所在的池/快照所在的镜像文件@快照
rbd snap unprotect volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12 #上面不能删除显示的报错信息是此快照备写保护了,命令是删除写保护后再进行删除
rbd snap purge -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4 #删除一个镜像文件的所有快照
rbd export -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a /root/aaa.img #把ceph pool中的一个镜像导出
rbd import /root/aaa.img -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a #把一个镜像导入ceph中 (但是直接导入是不能用的,因为没有经过openstack,openstack是看不到的)
ceph 安装过程的更多相关文章
- ceph安装过程
创建群集[2019-03-20 18:35:04,232][ceph_deploy.conf][DEBUG ] found configuration file at: /home/sceph/.ce ...
- ceph安装
使用ceph-deploy部署部署版本ceph-luminous 一,下载安装包,制作yum源,yum将挂载到192.168.100.100 (1)下载安装包 mkdir ceph-luminou ...
- webstorm下载&&安装过程&&打开项目
一.webstorm下载 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HT ...
- vagrant 1.8.6 安装过程及总结遇到的坑
下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...
- 安装过程错误[INS-30131]
问题:Oracle Database 安装过程错误[INS-30131] 原因:安装用户没有对临时文件夹的读写权限 解决方案: 1.以管理员身份运行cmd.exe 2.输入命令(需启动Se ...
- TortoiseGIT的安装过程详解
TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...
- RabbitMQ 集群安装过程详解
一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...
- JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法
近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...
- LNMP安装过程
LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独 ...
随机推荐
- 【Codeforces 204E】Little Elephant and Strings
Codeforces 204 E 题意:给\(n\)个串,求对于每一个串在至少\(k\)个串中出现的它的子串\(S_{l..r}\)有多少个. 思路:后缀自动机上\(dp\)... 我们首先构造出这\ ...
- 如何屏蔽SkylineGlobe提供的三维地图控件上的快捷键
SkyllineGlobe提供的 <OBJECT ID=" TerraExplorer3DWindow" CLASSID="CLSID:3a4f9192-65a8- ...
- u-boot全面分析
uboot主Makefile分析1 uboot住Makefile分析参考:https://www.2cto.com/kf/201607/522424.html uboot version确定(Make ...
- 搭建mysql cluster
虚拟机搭建Mysql Cluster 参考文档:http://www.cnblogs.com/jackluo/archive/2013/01/19/2868152.html http://www.cn ...
- LOJ2542 PKUWC2018 随机游走 min-max容斥、树上高斯消元、高维前缀和、期望
传送门 那么除了D1T3,PKUWC2018就更完了(斗地主这种全场0分的题怎么会做啊) 发现我们要求的是所有点中到达时间的最大值的期望,\(n\)又很小,考虑min-max容斥 那么我们要求从\(x ...
- windows下docker启动.net core mvc随手记
docker基本命令: 查看当前的版本docker--version查看本地所有镜像:docker images查看当前正在运行的所有容器docker ps停止某个容器:docker stop 容器I ...
- Jmeter(三十四)_Beanshell解析并提取json响应
1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration ...
- 基于 HTML5 Canvas 的 3D WebGL 机房创建
对于 3D 机房来说,监控已经不是什么难事,不同的人有不同的做法,今天试着用 HT 写了一个基于 HTML5 的机房,发现果然 HT 简单好用.本例是将灯光.雾化以及 eye 的最大最小距离等等功能在 ...
- 跨平台、跨语言应用开发,Elements 介绍
目录 1,Elements 介绍 2,Elements 版本 3,Elements 能干嘛 4,Elements IDES 5,Elements 工具 1,Elements 介绍 RemObject ...
- 磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted
需求说明:云服务器上买了一块8T的磁盘,准备挂载到服务器上的/data目录下. ===================================parted命令说明=============== ...