GlusterFS
实验目标:
掌握Glusterfs的理论和配置
实验理论:
GlusterFS(Gluster File System) 分布式文件系统的诞生:
以淘宝为例,淘宝把全国所有的数据放在杭州,在双11时,面对巨大的访问量,会发生什么?(并发处理用LB解决)大量的用户时时刻刻的对磁盘阵列读写,面对这么强大的攻势,在强大的磁盘阵列也得崩溃,即使访问量不大,有的人离杭州远,有的离杭州近,用户访问速度也是不同的。
使用分布式文件系统可以解决这些问题,分布式文件系统就是在每一个城市放上一台服务器,那么上海的用户就访问上海的服务器,北京的用户就访问北京的服务器,整体数据就像是一个池子,把整体数据切成一个一个的数据分片,每个池子的数据分片分别放在不同城市的服务器上。
针对不同城市的数据,为保证数据的安全,采用RAID的技术保证数据的永不丢失,采用LVM技术来保证硬盘随着数据的日渐增多可以增加硬盘大小,
即使一个城市上的数据损坏了,也可以还原数据
分布式文件系统现在有四种:
1、GlusterFS 2、Ceph 3、MooseFS 4、Luster:
GlusterFS和Ceph是4种分布式文件系统中最好的两个,这两个现在都被红帽收购!
现在是GlusterFS的天下,未来是Ceph的天下
实验拓扑:
Node1、Node2、Node3、Node4、Node5,IP分配为:192.168.1.121----125
注意:
一、所有设备都要关闭防火墙和SELinux
二、Node1到Node5用的是glusterfs3.0的iso镜像,在安装界面时要按Esc键,输入linux,回车,这样系统只会拷贝自己需要的iso里的文件来安装系统,系统安装会快些,如果直接在安装界面回车,会把整个iso文件拷贝过来,系统安装会很慢
实验步骤:
步骤一、创建分区
Node1、2、3、4:节点1、2、3、4都要做的配置
[root@node1~]# vim /etc/hosts
192.168.1.121 node1.example.com node1
192.168.1.122 node2.example.com node2
192.168.1.123 node3.example.com node3
192.168.1.124 node4.example.com node4
192.168.1.125 node5.example.com node5
[root@node1 ~]# service glusterd status
glusterd (pid 1207) is running... 用专门的iso安装系统,默认就启动了Glusterd服务,其它系统就需要你去安装glusterd这个服务了
[root@node1 ~]# fdisk -cu /dev/sda
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First sector (107005952-209715199, default107005952):
Using default value 107005952
Last sector, +sectors or +size{K,M,G}(107005952-209715199, default 209715199):
Using default value 209715199
Command (m for help): n
First sector (107008000-209715199, default107008000):
Using default value 107008000
Last sector, +sectors or +size{K,M,G}(107008000-209715199, default 209715199): +10G
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e(Linux LVM)
Command (m for help): w
The partition table has been altered!
[root@node1 ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
[root@node1 ~]# pvcreate /dev/sda5
Physical volume "/dev/sda5" successfully created
[root@node1 ~]# vgcreate vg_bricks /dev/sda5
Volume group "vg_bricks" successfully created
[root@node1 ~]# lvcreate -L 5G -T vg_bricks/brickspool 在vg_bricks中,创建一个LV池子brickspool,大小为5G
Logical volume "lvol0" created
Logical volume "brickspool" created
[root@node1 ~]# lvcreate -V 1G -T vg_bricks/brickspool -n brick1 在LV池子brickspool中,创建一个LV叫brick1 大小1G
Logical volume "brick1" created
[root@node1 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/brick1 xfs格式化时要指定大小
meta-data=/dev/vg_bricks/brick1 isize=512 agcount=8, agsize=32768 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=262144,imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560,version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
ode1 ~]# mkdir -p /bricks/brick1
[root@node1 ~]# echo "/dev/vg_bricks/brick1 /bricks/brick1 xfs defaults 0 0" >> /etc/fstab /dev/vg_bricks/brick1开机自动挂载到/bricks/brick1
[root@node1 ~]# mount -a
[root@node1 ~]# mkdir /bricks/brick1/brick 挂载完成后在创建这个存放数据分片的目录
步骤二、搭建Gluster
Node1:
各个城市节点分区完毕后,把这些节点组合起来,形成一个大的“池子”,来综合管理数据,包括数据的动态切割分配,数据的冗余备份,在node1上做,就默认把node1当成主节点
[root@node1 ~]# gluster 敲gluster命令进入到gluster命令行中
gluster> peer probe node1.example.com
peer probe: success. Probe on localhost not needed 在节点1上做,自己怎么加入自己?
gluster> peer probe node2.example.com
peer probe: success.
gluster> peer probe node3.example.com
peer probe: success.
gluster> peer probe node4.example.com
peer probe: success.
gluster> peer status
Number of Peers: 3
Hostname: node2.example.com
Uuid: ce2fe11c-94b8-4884-9d3a-271f01eff280
State: Peer in Cluster (Connected)
Hostname: node3.example.com
Uuid: 28db58f8-5f8a-4a7f-94a9-03a8a8137fdd
State: Peer in Cluster (Connected)
Hostname: node4.example.com
Uuid: 808a34d9-80cf-4077-acfa-f255f52aa9be
State: Peer in Cluster (Connected)
创建第一个GlusterFS组并实现两两备份
[root@node1 ~]# gluster
gluster> volume create firstvol replica 2 node1.example.com:/bricks/brick1/brick node2.example.com:/bricks/brick1/brick node3.example.com:/bricks/brick1/brick node4.example.com:/bricks/brick1/brick 创建firstvol卷
volume create: firstvol: success: pleasestart the volume to access data
gluster> volume start firstvol