1、ceph-deploy之部署ceph集群
环境说明
- 公网-http://download.ceph.com,http://mirrors.aliyun.com
- 内网-自建mirrors
架构说明
 
准备工作
- mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
- mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
- curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- yum install centos-release-ceph-luminous -y
- yum update -y
- yum installl ceph-deploy -y
- yum install ntp ntpdate ntp-doc -y
- yum install openssh-server -y
- #生成秘钥对
- ssh-keygen
- #将管理节点公钥注入到其他server
- ssh-copy-id SERVER-
- yum install yum-plugin-priorities -y
部署集群
- #在管理节点使用ceph-deploy部署ceph cluster
- #创建部署目录
- mkdir ~/my-cluster
- cd ~/my-cluster
- #从头开始(非第一次部署ceph,清理环境)
- ceph-deploy purge {ceph-node}[{ceph-node}]
- ceph-deploy purgedata {ceph-node}[{ceph-node}]
- ceph-deploy forgetkeys
- rm ceph.*
- ##创建集群
- #创建monitor节点
- #例如:ceph-deploy new {initial-monitor-node(s)}
- ceph-deploy new node1
- #安装ceph包到各个节点
- ceph-deploy install node1 node2 node3
- #初始化monitor节点,获取keys
- ceph-deploy mon create-initial
- #上述命令执行成功后,你会在当前目录下得到以下keyring文件
- ceph.client.admin.keyring
- ceph.bootstrap-mgr.keyring
- ceph.bootstrap-osd.keyring
- ceph.bootstrap-mds.keyring
- ceph.bootstrap-rgw.keyring
- ceph.bootstrap-rbd.keyring
- #将keyring文件分发到各个节点
- ceph-deploy admin node1 node2 node3
- #部署manager(l版本之上才需要)
- ceph-deploy mgr create node1
- #部署osd节点(这里使用虚拟机,挂载了/dev/vdb卷)
- ceph-deploy osd create node1:/dev/vdb node2:/dev/vdb node3:/dev/vdb
- #检查集群,在管理节点执行
- ceph health
- ceph -s
扩展集群

- #添加metadate server
- ceph-deploy mds create node1
- #添加monitors
- ceph-deploy mon add node2 node3
- #添加新的monitor节点之后,ceph会同步monitor,选举代表quorum
- #查看quorum状态
- ceph quorum_status --format json-pretty
- #添加managers
- #manager使用active/standby模式,多节点部署,可以在master down时,无缝顶替
- ceph-deploy mgr create node2 node3
- #添加rgw实例
- #为了使用ceph object gateway,需要部署rgw实例
- ceph-deploy rgw create node1
- #rgw默认监听端口是7480,可以通过编辑ceph.conf修改端口
- [client]
- rgw frontends = civetweb port=80
存储、检索对象数据
- ceph osd map {poolname}{object-name}
- #创建一个对象,测试文件
- echo {Test-data}> testfiles.txt
- ceph osd pool create mytest 8
- #使用rados put 命令指定对象名,含有对象数据的测试文件,pool name
- #rados put {object-name} {file-path} --pool=mytest
- rados put test-object-1 testfile.txt --pool=mytest
- #验证ceph集群已经存储了此object
- rados -p mytest ls
- #找到对象位置
- #ceph osd map {pool-name} {object-name}
- ceph osd map mytest test-oobject-1
- #ceph会输出对象位置
- osdmap e537 pool 'mytest'(1) object 'test-object-1'-> pg 1.d1743484(1.4)-> up [1,0] acting [1,0]
- #删除测试对象object
- rados rm test-object-1--pool-mytest
- #删除mytest pool
- ceph osd pool rm mytest
tip:如果虚拟机没有硬盘,可使用裸设备模拟
- #安装lvm
- yum install lvm2 -y
- #创建虚拟磁盘
- mkdir /ceph && dd if=/dev/zero of=/ceph/ceph-volumes.img bs=1M count=10240 oflag=direct
- sgdisk -g --clear /ceph/ceph-volumes.img
- vgcreate ceph-volumes $(losetup --show -f /ceph/ceph-volumes.img)
- lvcreate -L 9G -n ceph1 ceph-volumes
- mkfs.xfs -f /dev/ceph-volumes/ceph1
- #挂载
- mkdir -p /var/local/osd1
- chown ceph:ceph /var/local/osd1 #修改属主属组,不然在添加osd时候会报权限错误
- mount /dev/ceph-volumes/ceph1 /var/local/osd1
1、ceph-deploy之部署ceph集群的更多相关文章
- 使用kubeadm部署Kubernetes集群
		一.环境架构与部署准备 1.集群节点架构与各节点所需安装的服务如下图: 2.安装环境与软件版本: Master: 所需软件:docker-ce 17.03.kubelet1.11.1.kubeadm1 ... 
- CentOS上手工部署kubernetes集群
		本文完全是根据二进制部署kubernets集群的所有步骤,同时开启了集群的TLS安全认证. 环境说明 在下面的步骤中,我们将在三台CentOS系统的物理机上部署具有三个节点的kubernetes1.7 ... 
- 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台
		参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/h ... 
- kubeadm部署Kubernetes集群
		Preface 通过kubeadm管理工具部署Kubernetes集群,相对离线包的二进制部署集群方式而言,更为简单与便捷.以下为个人学习总结: 两者区别在于前者部署方式使得大部分集群组件(Kube- ... 
- (二)Kubernetes kubeadm部署k8s集群
		kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ... 
- 部署TiDB集群
		架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ... 
- AMBARI部署HADOOP集群(4)
		通过 Ambari 部署 hadoop 集群 1. 打开 http://192.168.242.181:8080 登陆的用户名/密码是 : admin/admin 2. 点击 “LAUNCH INS ... 
- 基于Ambari Server部署HDP集群实战案例
		基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ... 
- 使用kubeadm部署k8s集群[v1.18.0]
		使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ... 
- 通过kubeadm快速部署K8S集群
		kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ... 
随机推荐
- geckofx
			geckofx是skybound工作室开发的一个开源的用于方便将gecko引擎(最主要的浏览器是firefox)链接到·net 窗体应用的一个组建. 外文名 geckofx 开发商 skyboun ... 
- bzoj3550
			费用流+线性规划 搞了很长时间... 我们可以设立式子,a[1]+a[2]+a[3]+...+a[n]<=k , ... , a[2 * n + 1]+ ... +a[3*n]<=k a是 ... 
- Linux进程状态解析
			引言 Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态. 在下文将对进程的R.S.D.T.Z.X 六种状态做个说明. PROCE ... 
- 高德,百度,Google地图定位偏移以及坐标系转换
			一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系 一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的 ... 
- 数据库mysql原生代码基本操作
			创建表: CREATE TABLE `biao` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '测试表', `createtime` ... 
- 解决eclipse用maven install打包报错问题:-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
			1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk, 添加 -Dmaven.multiModuleP ... 
- Elasticsearch之CURL命令的UPDATE
			对于,Elasticsearch之CURL命令的UPDATE包括局部更新和全部更新.可以去看我写的另一篇博客. Elasticsearch之更新(全部更新和局部更新) 总结: ES全部更新,使用PUT ... 
- Hadoop Hive概念学习系列之hive里的HiveQL——查询语言(十五)
			Hive的操作与传统关系型数据库SQL操作十分类似. Hive主要支持以下几类操作: DDL 1.DDL:数据定义语句,包括CREATE.ALTER.SHOW.DESCRIBE.DROP等. 详细点, ... 
- Java系列学习(二)-配置开发环境
			1.设置系统环境变量 1.1.设置JDK的Path路径 作用:通过path环境变量,将JDK安装目录下的bin目录配置到path变量下,可使javac指令和java指令在任意目录下运行 方法一:直 ... 
- CSS——background综合运用
			搜索栏图标: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ... 
