curve-ansible是用ansible编写的curve高性能存储系统远程部署升级工具,可以很方便的在一台主控机上做到部署升级集群所有节点。
## 一、软件依赖
ansible 2.5.9
python 2.7.13
## 二、使用说明
### 1、inventory文件说明
inventory文件有client.ini和server.ini,client.ini存放client的机器列表以及对应的变量,server.ini存放除了client以外的机器,包括etcd,mds,快照克隆,chunkserver等。机器列表格式:
``````ini
localhost ansible_ssh_host=127.0.0.1 chunkserver_num=14
``````
其中localhost为机器别名,127.0.0.1为服务所用ip。chunkserver_num是主机变量,inventory中的所有变量都定义成了组变量,比如
``````ini
[chunkservers:vars]
chunkserver_num=13
``````
表示所有chunkserver机器上的chunkserver数量都是13,但是可能会有个别chunkserver的数量不等于13,这时候在主机变量中指定一下就可以覆盖组变量中的值,就能够做到特化处理,其他变量同理。
### 2、配置管理
配置由ansible通过模板的方式统一分发,所有配置文件的模板都在roles/generate_config/templates下面。配置项的默认值在roles/generate_config/defaults/main.yml中,如果不想使用默认值,则在inventory或命令行中额外指定这个变量的指即可。
### 3、包管理
curve-ansible同时提供了debian包和tar包的方式安装curve软件包。默认使用tar包方式安装,如果想用debian包的方式,需要在inventory或者命令行中指定install_with_deb=true。(debian的方式目前不支持格式化指定盘,只支持格式化全部ATA盘)
- debian包的方式下,需要使用mk-deb.sh打debian包,并将debian包上传到debian源中,使其能够用apt-get命令安装。
- tar包的方式下,tar包可以是来自curve github release,也可以是自己执行mk-tar.sh脚本获取到的。
## 三、使用命令
### 1、集群部署
部署分为两部分,一个是curve集群部署,即服务端部署,另一个是客户端部署,提供了sdk、qemu和nbd三种方式。curve集群部署提供了一键部署以及部署单个服务的命令。单个服务部署应该遵循etcd->mds->chunkserver->snapshotclone的顺序。所有play和role都有tag,可以根据tag来选择只执行部分操作。
##### 1.1 部署前准备
部署前需要准备inventory文件,inventory文件里的机器列表以及其他变量,根据自己的需求设置好相应的值。为了更好地发挥磁盘性能,curve提供了磁盘预格式化的功能,如果需要预格式化,则需要将inventory中的chunkserver_format_disk设置为true。如果是单机部署或不希望格式化磁盘,则将chunkserver_format_disk设置为false即可。
此外,还需把group_vars/mds.yml中的cluster_map设置成自己集群对应的拓扑结构。cluster_map格式如下:
```yaml
cluster_map:
servers:
- name: server1
internalip: 127.0.0.1
internalport: 8200
externalip: 127.0.0.1
externalport: 8200
zone: zone1
physicalpool: pool1
- name: server2
internalip: 127.0.0.1
internalport: 8201
externalip: 127.0.0.1
externalport: 8201
zone: zone2
physicalpool: pool1
- name: server3
internalip: 127.0.0.1
internalport: 8202
externalip: 127.0.0.1
externalport: 8202
zone: zone3
physicalpool: pool1
logicalpools:
- name: logicalPool1
physicalpool: pool1
type: 0
replicasnum: 3
copysetnum: 100
zonenum: 3
scatterwidth: 0
```
其中servers是chunkserver所在的机器列表。如果是单机部署,需要指定internalport和externalport为单机部署的chunkserver对应的端口。如果是多机部署,则需要把internalport和externalport都设置成0。需要注意这里zone的数量要大于等于logicalpools里面指定的zonenum。logicalpools是逻辑池的列表,除了名字,需要指定它所属的物理池、类型、副本数量、copyset数量zone数量以及scatterwidth。目前的类型只支持0,page file类型。
如果需要格式化磁盘,则需要额外在group_vars/chunkservers.yml中指定磁盘的列表。比如:
```yaml
disk_list:
- sda
- sdb
- sdc
```
group_vars/chunkservers.yml中指定的变量是所有chunkserver共用的,如果某个chunkserver上的磁盘列表跟其他的不一致,则需要在host_vars中额外给出。比如server.ini中chunkserver是下面三台机器:
```ini
[chunkservers]
server1 ansible_ssh_host=10.192.100.1
server2 ansible_ssh_host=10.192.100.2
server3 ansible_ssh_host=10.192.100.3
```
假设server1和server2对应的都是sda,sdb,sdc, server3使用的是sda,sdb,sdd,sde这四块盘。那么server1和server2的disk_list不需要在host_vars额外指出,而server3的disk_list需要额外指出。具体做法是在host_vars下面新建一个server3.yml。里面的内容为:
```
disk_list:
- sda
- sdb
- sdd
- sde
```
#### 1.2 一键部署curve集群
一键部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini
```
快照克隆服务需要提供s3账号和密码才能够部署,因此一键部署默认不会部署快照克隆和快照克隆Nginx,deploy_curve.yml中根据角色打了tag,因此部署个别服务,只需要指定对应的tag即可,下面会一一列举。
#### 1.3 部署etcd
部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags etcd
```
mds和快照克隆都需要用到etcd,因此部署的第一步是部署etcd。默认etcd的版本是v3.4.0,如果需要更高版本的话在inventory或命令行中指定etcd_version即可。
#### 1.4 部署mds
部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags mds
```
#### 1.5 创建物理池
命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags create_physical_pool
```
mds成功启动后,必须先创建物理池才能启动chunkserver,否则chunkserver会因为注册失败而退出。
#### 1.6 部署chunkserver
部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags chunkserver
```
chunkserver和其他组件相比多了一个格式化的步骤,如果指定了chunkserver_format_disk,会将机器上指定的磁盘全部格式化,否则不格式化,只是创建一下data目录。
#### 1.7 创建逻辑池
命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags create_logical_pool
```
启动chunkserver之后,集群还不能立马服务,需要创建逻辑池(逻辑池中会创建copyset)才能真正开始服务。
#### 1.8 部署快照克隆
快照克隆服务器独立于其他组件,因此需要单独部署。
部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags snapshotclone
```
如果快照克隆服务器没有做高可用,只有一台机器,那么不需要部署Nginx,直接访问快照克隆服务器的服务端口即可开始使用。
#### 1.9 部署快照克隆Nginx
如果快照克隆服务器不止一台,那么需要部署Nginx才能够正常访问。
部署命令:
```shell
ansible-playbook deploy_curve.yml -i server.ini --tags snapshotclone_nginx
```
#### 1.10 部署监控
一键部署监控命令:
```shell
ansible-playbook deploy_monitor.yml -i server.ini
```
### 2、集群升级
目前curve的升级流程为先升级mds,后升级chunkserver和快照克隆最后升级client。使用ansible需要指定一台主控机,我们规定主控机为mds节点之一。ansible-playbook同时需要yml文件和inventory文件,yml文件规定了要做哪些操作,inventory指定了机器列表并定义了一些变量。yml文件在curve仓库的curve-ansible目录中,inventory每个环境一份,由用户自行管理。
#### 2.1 一键升级curve集群
一键升级命令:
```shell
ansible-playbook rolling_update_curve.yml -i server.ini
```
没有合适的资源?快使用搜索试试~ 我知道了~
curve分布式存储系统 v1.2.6.zip
共1450个文件
cpp:485个
h:392个
yml:130个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2024-03-18
21:14:07
上传
评论
收藏 7.78MB ZIP 举报
温馨提示
curve分布式存储系统 v1.2.6.zip
资源推荐
资源详情
资源评论
收起资源包目录
curve分布式存储系统 v1.2.6.zip (1450个子文件)
chunkserver.conf.0 4KB
chunkserver_docker.conf.0 2KB
chunkserver.conf.1 4KB
chunkserver_docker.conf.1 2KB
client.conf.1 1KB
chunkserver.conf.2 4KB
chunkserver_docker.conf.2 2KB
.bazelrc 39B
.bazelversion 7B
BUILD 11KB
BUILD 6KB
BUILD 4KB
BUILD 4KB
BUILD 4KB
BUILD 4KB
BUILD 3KB
BUILD 3KB
BUILD 3KB
BUILD 3KB
BUILD 3KB
BUILD 3KB
BUILD 3KB
glog.BUILD 3KB
aws.BUILD 3KB
leveldb.BUILD 3KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 2KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
gmock.BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
gflags.BUILD 1KB
aws-c-common.BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1KB
BUILD 1024B
BUILD 1024B
BUILD 1018B
BUILD 1008B
BUILD 998B
BUILD 994B
BUILD 990B
BUILD 985B
BUILD 975B
BUILD 972B
BUILD 966B
BUILD 966B
BUILD 960B
BUILD 949B
BUILD 939B
BUILD 932B
BUILD 931B
BUILD 905B
jsoncpp.BUILD 900B
gtest.BUILD 896B
BUILD 893B
BUILD 889B
BUILD 876B
BUILD 873B
BUILD 872B
BUILD 867B
BUILD 860B
BUILD 854B
BUILD 836B
BUILD 823B
BUILD 823B
BUILD 790B
共 1450 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
芝麻粒儿
- 粉丝: 6w+
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功