第一章 GlusterFS应用环境
GlusterFS主要应用于大文件的存储场景,如果是小文件比较多的情况建议用fastd。
GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
1.扩展性和高性能
GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。通过弹性哈希解决了对元
数据黑咖啡 的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。
2.高可用
GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至在
硬件故障的情况下也能正常访问。自我修复功能能够把数据恢复到正确的状态,而且修复是以增
量的方式在后台执行,几乎不会产生性能负载。
3.统一命名空间
全局统一命令空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上层用户屏蔽了底层的物
理硬件。存储资源可以没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。虚拟机I/O
可在命名空间内的所有服务器上自动进行负载均衡,消除了SAN环境中经常发生的访问热点和
性能瓶颈问题。
第二章 实战应用
实现把web01和web02的/uploads目录挂载到NFS01和NFS02的/data下
1. 准备阶段
[root@NFS01-31 ~]# getenforce
Disabled
[root@NFS01-31 ~]#
[root@NFS01-31 ~]#
[root@NFS01-31 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
2. yum下载服务需要特殊的gluster源
wget -P /etc/yum.repos.d/ http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/RHEL/glusterfs-epel.repo
yum install --nogpgcheck -y glusterfs-server
3. 启动glusterd服务仅N1和N2启动
systemctl start glusterd.service
4. 把NFS02加入池
[root@NFS01-31 ~]# gluster peer probe 172.16.1.32
peer probe: success.
5. 查看池子
[root@NFS01-31 ~]# gluster peer status
Number of Peers: 1
Hostname: 172.16.1.32
Uuid: aa670de8-5a11-411b-81d5-cd21e4af99e2
State: Peer in Cluster (Connected)
6. 创建复制卷(仅在NFS01操作)
[root@NFS01-31 ~]# gluster volume create pick replica 2 172.16.1.31:/data 172.16.1.32:/data force
volume create: pick: success: please start the volume to access data
7. 查看卷信息
[root@NFS01-31 data]# gluster volume info
Volume Name: pick
Type: Replicate
Volume ID: 41d37c3d-eb8c-45e0-a234-7b0b1ffb1e42
Status: Created
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 172.16.1.31:/data
Brick2: 172.16.1.32:/data
Options Reconfigured:
performance.readdir-ahead: on
8. Status:Created是关闭 所以要开启卷
[root@NFS01-31 data]# gluster volume start pick
volume start: pick: success
9. 检查是否开启
[root@NFS01-31 data]# gluster volume info
Volume Name: pick
Type: Replicate
Volume ID: 41d37c3d-eb8c-45e0-a234-7b0b1ffb1e42
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 172.16.1.31:/data
Brick2: 172.16.1.32:/data
Options Reconfigured:
performance.readdir-ahead: on
10. 挂载卷Web01&Web02
[root@w1 ~]# mount -t glusterfs 172.16.1.31:/pick /application/nginx/html/blog/wp-content/uploads/
11. 查看挂载信息
[root@web01-7 data]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.8G 47G 4% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/pick 48G 1.7G 47G 4% /data
success!
第三章 其他操作
1. 取消挂载
[root@w1 ~]# umount /application/nginx-1.10.2/html/blog/wp-content/uploads
[root@w1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 6.9G 3.7G 2.8G 58% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 33M 147M 19% /boot
2. 停止卷
[root@n1 ~]# gluster volume stop pick
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: pick: success
3. 移除brick(必须移除再删除卷)
[root@n1 ~]# gluster volume remove-brick pick replica 1 n1:/data/ force
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success
移除一个即可
4. 删除卷
[root@n1 ~]# gluster volume delete pick
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: pick: success
5. 删除卷
[root@n1 ~]# gluster peer detach n2
peer detach: success
6. 磁盘平衡
磁盘平衡时很有必要的(平衡布局:rebalance),因为布局结构是静态的,当新的bricks加入先有卷,新创建的文件会分布到旧的Bricks中,只有平衡布局(rebalance),新加入的磁盘才会生效。