美文网首页
glusterfs 设置Storage

glusterfs 设置Storage

作者: bern85 | 来源:发表于2019-12-13 16:51 被阅读0次

    卷是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
    
    1. 使用lvcreate命令从先前创建的池中创建 thinly provisioned volume :

      例如:

      # lvcreate -V 1G -T gfs_vg/gfs_pool -n gfs_lv
      

    建议在 thin pool 中仅创建一个LV。

    使用支持的XFS配置格式化 bricks ,挂载 bricks ,并验证 bricks 是否正确挂载。

    1. 运行 # 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
    

    相关文章

      网友评论

          本文标题:glusterfs 设置Storage

          本文链接:https://www.haomeiwen.com/subject/ufzfnctx.html