openstack的cinder后端存储技术--------GlusterFS
GlusterFS集群
一、环境
1、操作系统:ubuntu 14.04 LTS
2、两台主机搭建GlusterFS集群
192.168.2.62 controller
192.168.20.62 computer
3、硬盘挂载
分区格式化挂载
fdisk -l
fdisk /dev/sda
n #执行过后一直回车
+20G #硬盘大小
p #查看分区情况
w #保存
mkfs.ext4 /dev/sda1
#没有可用硬盘有可以LVM时执行以下操作
lvreate -L 大小 -n 逻辑卷名 卷组名
mkfs.ext4 /dev/mapper/....
二、集群部署
1、分别在两台pc上安装glusterfs-server软件
apt-get install -y glusterfs-server
2、分别在两台pc上的/etc/hosts里面添加IP和主机名
vim /etc/hosts
...
192.168.2.62 controller
192.168.20.62 computer
3、启动GlusterFS服务
service glusterfs-server restart
4、分别在两台pc上创建分布式存储目录并挂载硬盘
mkdir -p /data/fs1
mount /dev/sda1 /data/fs1
5、添加集群点
gluster peer probe fs2
6、查看集群状态
gluster peer status
7、创建分布式卷并启动
六种类型的volume可以创建
1、Distributed:分布式卷,文件通过hash算法随机的分布到由bricks组成的卷上。
2、Replicated:复制式卷,类似raid1,replica数必须等于volume中brick所包含的存储服务器数,可用性高。
3、Striped:条带式卷,类似与raid0,stripe数必须等于volume中brick所包含的存储服务器数,文件被分成数据块,以Round
4、Robin的方式存储在bricks中,并发粒度是数据块,大文件性能好。
5、Distributed Striped:分布式的条带卷,volume中brick所包含的存储服务器数必须是stripe的倍数(>=2倍),兼顾分布式和条带式的功能。
6、Distributed Replicated:分布式的复制卷,volume中brick所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。
gluster volume create testcontroller:/data/fs1 computer:/data/fs2 force
gluster volume start test
gluster volume info
mount -t glusterfs computer:/haha/var/lib/cinder/volumes/ #不能自动挂载时执行
三、常见操作
1、添加资源池服务器
gluster peer probe NODE_NAME
2、删除资源池
gluster volume stop VOLUME_NAME
gluster volume delete VOLUME_NAME
gluster peer detach node3 VOLUME_NAME
3、添加brick
gluster volume add-brickVOLUME_NAMENODE_NAME:BRICK_DIR [NODE_NAME:BRICK_DIR]
gluster volume remove-brickVOLUME_NAME NODE_NAME:BRICK_DIR [NODE_NAME:BRICK_DIR ]
4、rebalance卷 {当扩展或者收缩一个卷(add-brick/remove-brick)以后,需要rebalance数据}
gluster volume rebalance VOLUME_NAMEstart
gluster volume rebalance VOLUME_NAMEstatus
gluster volume rebalance VOLUME_NAMEstop
openstack配置
一、cinder节点
1、编辑/etc/cinder/cinder.conf
[DEFAULT]
enabled_backends =lvm,glusterfs,ibm
[lvm]
volume_driver =cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name=LVM
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
[glusterfs]
volume_driver=cinder.volume.drivers.glusterfs.GlusterfsDriver
volume_backend_name=GlusterFS
glusterfs_shares_config=/etc/cinder/shares.conf
glusterfs_mount_point_base=/var/lib/cinder/volumes
2、下载glusterfs客户端
apt-get install -y glusterfs-client
3、编辑/etc/cinder/shares.conf 配置glusterfs存储配置
vim /etc/cinder/shares.conf
192.168.20.62:/test
chowm -R root:cinder/etc/cinder/shares.conf
4、重启cinder-volume服务并查看日志是否报错,查看卷是否挂载
service cinder-volume restart
tail -f/var/log/cinder/cinder-volume.log
mount #如果成功挂载--->192.168.20.62:/test on/var/lib/cinder/volumes....
二、controller节点
[glusterfs] #最后添加
volume_driver=cinder.volume.drivers.glusterfs.GlusterfsDriver
三、computer节点
[cinder] #最后添加
volume_api_class=nova.volume.cinder.API
以下为配置多类型存储时执行
一、controller建立type
cinder type-create glusterfs #创建类型
cinder type-key glusterfs setvolume_backend_name=glusterfs #controller配置cinder-type和volume_backend_name联动
cinder extra-specs-list #查看type的设置情况
二、重启controller的cinder服务
service cinder-scheduler restart
service cinder-api restart