卷是bricks 的逻辑集合,其中每个brick都是务器上可信任的storage 池中的导出目录。 在创建volume之前,您需要设置brick。
Brick命名约定
GlusterFS数据应该存放在哪里呢?GlusterFS没有强制要求,但共识似乎倾向于使用/data。 放置bricks的一种好的分层方法是:
/data/glusterfs/<volume>/<brick>/brick
在此示例中,<brick>是已挂载的文件系统。
示例:每台服务器一个Brick
物理磁盘 /dev/sdb 将用作要创建的名为 myvol1 的卷的 brick 存储。 假设你已经在4台服务器上的每台上使用 XFS 对/ /dev/sdb1 进行了分区和格式化。
在所有4台服务器上:
mkdir -p /data/glusterfs/myvol1/brick1
mount /dev/sdb1 /data/glusterfs/myvol1/brick1
我们将在该文件系统上的 brick 目录中定义实际的 brick 。 如果未安装XFS文件系统,则导致 brick 无法启动。
在其中一台服务器上:
gluster volume create myvol1 replica 2 server{1..4}:/data/glusterfs/myvol1/brick1/brick
这将创建卷myvol1,该卷在4台服务器上都使用目录
/data/glusterfs/myvol1/brick1/brick
示例:每台服务器两个Brick
两个物理磁盘 /dev/sdb 和 /dev/sdc 将用作要创建的名为myvol2的卷的 brick 存储。 假设你已经在4台服务器上的每台上都使用 XFS 对 /dev/sdb1 和/dev/sdc1 进行了分区和格式化。。
在所有4台服务器上:
mkdir -p /data/glusterfs/myvol2/brick{1,2}
mount /dev/sdb1 /data/glusterfs/myvol2/brick1
mount /dev/sdc1 /data/glusterfs/myvol2/brick2
同样,我们将在这些文件系统上的 brick 目录中定义实际的brick
在其中一台服务器上:
gluster volume create myvol2 replica 2 \
server{1..4}:/data/glusterfs/myvol2/brick1/brick \
server{1..4}:/data/glusterfs/myvol2/brick2/brick
**Note: ** 尝试使用gluster卷创建名为myvol2,副本为2 的卷看起来很好,
gluster volume create myvol2 replica 2 server{1..4}:/data/glusterfs/myvol2/brick{1,2}/brick
但是Bash 首先会扩展最后一个{}
, 所以最终会在每台服务器上的两个 brick 之间复制,而不是跨服务器复制。
格式化和安装Bricks
创建Thinly Provisioned Logical Volume
要创建一个Thinly Provisioned Logical Volume,有如下几步:
1、使用pvcreate命令创建物理卷(PV)。 例如:
# pvcreate --dataalignment 1280K /dev/sdb
在这里, /dev/sdb 是一个存储设备。 根据你的设备使用正确的数据对齐方式选项。
Note
设备名称和对齐值将根据所使用的设备而有所不同。
2、使用vgcreate命令从PV创建卷组(VG):例如:
# vgcreate --physicalextentsize 128K gfs_vg /dev/sdb
建议仅从一个存储设备创建一个VG。
3、使用以下命令创建thin-pool:
a. 使用以下命令创建一个LV以用作元数据设备:
```shell
lvcreate -L metadev_sz --name metadata_device_name VOLGROUP
```
例如:
# lvcreate -L 16776960K --name gfs_pool_meta gfs_vg
a. 使用以下命令创建一个LV作为数据设备:
# lvcreate -L datadev_sz --name thin_pool VOLGROUP
例如:
# lvcreate -L 536870400K --name gfs_pool gfs_vg
a. 使用以下命令从数据LV和元数据LV创建 thin pool :
# lvconvert --chunksize STRIPE_WIDTH --thinpool VOLGROUP/thin_pool --poolmetadata VOLGROUP/metadata_device_name
例如:
# lvconvert --chunksize 1280K --thinpool gfs_vg/gfs_pool --poolmetadata gfs_vg/gfs_pool_meta
Note
默认情况下, thin pool 中新配置的块将清零,以防止不同块设备之间的数据泄漏。
# lvchange --zero n VOLGROUP/thin_pool
例如:
# lvchange --zero n gfs_vg/gfs_pool
-
使用lvcreate命令从先前创建的池中创建 thinly provisioned volume :
例如:
# lvcreate -V 1G -T gfs_vg/gfs_pool -n gfs_lv
建议在 thin pool 中仅创建一个LV。
使用支持的XFS配置格式化 bricks ,挂载 bricks ,并验证 bricks 是否正确挂载。
- 运行
# mkfs.xfs -f -i size=512 -n size=8192 -d su=128k,sw=10 DEVICE
将 bricks 格式化为支持的XFS文件系统格式。 在这里,DEVICE是 thin LV。 索引节点的大小设置为512字节,以适应GlusterFS使用的扩展属性。
运行# mkdir /mountpoint
创建一个目录,以便将 brick 链接到该目录.
在* /etc/fstab *中添加一行:
/dev/gfs_vg/gfs_lv /mountpoint xfs rw,inode64,noatime,nouuid 1 2
运行# mount /mountpoint
挂载 brick.
运行df -h
命令检查 brick 是否成功挂载:
# df -h
/dev/gfs_vg/gfs_lv 16G 1.2G 15G 7% /exp1
网友评论