Redhat6 GFS文件系统

实验目的:

掌握GFS的理论和配置

 

实验理论:

在集群中为什么不用ext4类似的文件系统?

ext4文件系统在集群中不能实时同步数据,一个文件系统只有一个日志区,日志区记录着数据的变化

Redhat6 GFS文件系统【13】_第1张图片

storage里的一个iscsi分区被格式化成ext4,iscsi分区通过iscsi技术又分别被映射到A机和B机,被映射过去的iscsi分区又分别被挂载到A机和B机,ext4文件系统里只有一个日志区,当A主机对iscsi分区写数据(创建/passwd)的时候,ext4文件系统里的日志区被加载到A主机了,B主机没有这个日志区,就看不到/passwd信息了,B主机卸载iscsi分区,有重新挂载iscsi分区,日志区加载到了B主机,B主机就看到了数据的变化,B主机对iscsi分区写数据(创建/123)时,A主机是看不到/123的,因为A主机没有日志区

 

在集群中为什么要用gfs文件系统?

如果有3个节点,使用gfs文件系统,gfs文件系统要被分3个日志区,3个日志区分别被3个节点加载,3个节点分别写数据的时候3个日志区会自动的同步彼此的日志,另一个节点就会实时看到其它节点修改的数据了,一个标准的日志区大概是128M,一个gfs分区内会有多个分区,牺牲了数据空间。

 

Gfs(Global File  system)叫全局文件系统,也是一个网络日志文件系统,也叫集群文件系统,通常被用作多台计算机共享同一存储设备。

集群文件系统采用分布式锁管理,可以实现多个操作系统载入同一个文件系统的日志区同时对一个文件系统在同一时间内读写数据(在多台机器能同时看到变化的数据)

 

 

gfs有两种机制:

dlm锁机制:gfs不是可以让多个节点同时写入数据,dlm机制就防止其它节点同时写入数据

nolock不锁机制:可以同时看,同时写

 

本地LVM:本地节点里lvm.conf里的locking_type默认就为1,1代表不锁,3代表锁

集群LVM:只要节点加入到集群里lvm.conf里的locking_type的值就会从1自动变成3

集群LVM在node1创建一个LVM分区,node2也会有这个LVM分区,这就是集群LVM

 

 

 

实验步骤:

 

Node1

[root@node1 ~]# fdisk -cu  /dev/mapper/clusterstorage 

 

Command (m for help): p

 

Disk /dev/mapper/clusterstorage: 2147 MB,2147483648 bytes

 

                     Device Boot      Start         End      Blocks  Id  System

/dev/mapper/clusterstoragep1              63      224909     112423+  83 Linux

/dev/mapper/clusterstoragep2          224910      449819      112455  83  Linux

 

Command (m for help): n

Command action

  e   extended

  p   primary partition (1-4)

p

Partition number (1-4): 3

First sector (449820-4194303, default 449820):

Using default value 449820

Last sector, +sectors or +size{K,M,G}(449820-4194303, default 4194303): +800M

 

Command (m for help): w

The partition table has been altered!

[root@node1 ~]# partprobe /dev/mapper/clusterstoragep3 创建一个分区,把分区写进内核

 

 

Node2

[root@node2 ~]# partprobe /dev/mapper/clusterstorage 把分区写进内核

[root@node2 ~]# fdisk  -l

Disk /dev/mapper/clusterstorage: 2147 MB, 2147483648bytes

 

                     Device Boot      Start         End      Blocks  Id  System

/dev/mapper/clusterstoragep1               1          14      112423+ 83  Linux

/dev/mapper/clusterstoragep2              15          28      112455  83  Linux

/dev/mapper/clusterstoragep3              29         130      819200  83  Linux

 

 

Node1

mkfs. tables一下看你的系统是否有mkfs.gfs2这条命令,如果没有,那你需要安装gfs软件包了yum  -y  install  gfs*

root@node1 ~]# mkfs.

mkfs.cramfs   mkfs.ext3    mkfs.ext4dev  mkfs.msdos   

mkfs.ext2     mkfs.ext4     mkfs.gfs2     mkfs.vfat

[root@node1 ~]# mkfs.gfs2   -j 4  -p  lock_dlm -t  cluster0:gfs1   /dev/mapper/clusterstoragep3  -j表示划分几个日志区  3个节点划分4个日志区,5个节点就划分6个日志区,划分日志区最好要比总节点多一个 –p 填写锁还是不锁机制  -t 填写集群名:随便取的设备名

This will destroy any data on/dev/mapper/clusterstoragep3.

It appears to contain: data

 

Are you sure you want to proceed? [y/n] y

 

Device:                   /dev/mapper/clusterstoragep3

Blocksize:                 4096

Device Size                0.78 GB (204800 blocks)

Filesystem Size:           0.78 GB (204797 blocks)

Journals:                  4

Resource Groups:           4

Locking Protocol:          "lock_dlm"

Lock Table:                "cluster0:gfs1"

UUID:                     f73338c6-2f8b-9c5a-95a3-158c3c856b7d

[root@node1 ~]# /etc/init.d/clvmd restart  两个节点都要重启clvmd服务

Restarting clvmd:                                          [ OK  ]

[root@node1 ~]# chkconfig  clvmd on

[root@node1 ~]# mkdir  /clv

[root@node1 ~]# mount /dev/mapper/clusterstoragep3  /clv

[root@node1 ~]# cd /clv

[root@node1 clv]# ls

[root@node1 clv]# touch  123

[root@node1 clv]# ls

123

 

 

Node2

[root@node2 ~]# /etc/init.d/clvmd  restart

Restarting clvmd:                                         [  OK  ]

[root@node2 ~]# chkconfig  clvmd on

[root@node2 ~]# mkdir  /clv

[root@node2 ~]# mount /dev/mapper/clusterstoragep3  /clv

[root@node2 ~]# cd  /clv

[root@node2 clv]# ls

[root@node2 clv]# ls

123

 

格式化成gfs文件系统,node1和node2都能同时看到变化的数据