如何在LXC/LXD(Linux容器)中挂载Glusterfs卷

时间:2020-01-09 10:39:32  来源:igfitidea点击:

如何在Debian或Ubuntu Linux上安装和配置Gluster Native Client?
如何挂载Gluster卷以从LXC/LXD(Linux容器)访问数据?

GlusterFS是一个开源网络分布式存储文件系统。
网络分布式存储文件系统在高流量的网站,云计算服务器,流媒体服务,CDN(内容交付网络)等中非常流行。
本教程向您展示如何在Ubuntu Linux 16.04 LTS服务器上安装GlusterFS客户端,以及如何在LXC/LXD内安装Glusterfs卷。

GlusterFS通过以太网或Infiniband RDMA互连将各种存储服务器聚合到一个大型并行网络文件系统中。
您可以使用网络文件系统来存储Apache/Nginx文件或您的应用程序文件。

步骤1允许LXD/LXC从主机挂载Glusterfs

在主机上执行以下命令:

$ sudo -i

执行以下两个命令:

# echo Y > /sys/module/fuse/parameters/userns_mounts
# echo Y > /sys/module/ext4/parameters/userns_mounts

编辑/etc/rc.local文件:

# vi /etc/rc.local

在退出0行之前,按照以下步骤进行编辑/更新:

echo Y > /sys/module/fuse/parameters/userns_mounts  
echo Y > /sys/module/ext4/parameters/userns_mounts

步骤2更新lxc/lxd VM中的/etc/hosts文件

登录到您的lxc/lxd机器:

$ lxc exec www-vm bash
# vi /etc/hosts

追加以下行以指向您的gfs服务器:

192.168.1.11	gfs01
192.168.1.12 gfs02
192.168.1.13	gfs03
192.168.1.14 gfs04

保存并关闭文件。
使用ping命令对其进行测试。
运行以下命令,以确保您可以从LXD/LXC VM到达Glusterfs服务器:

# ping -c 2 gfs01
# ping -c 2 gfs02
# ping -c 2 gfs03
# ping -c 2 gfs04

步骤3在lxc/lxd VM上安装Glusterfs客户端

执行以下add-apt-repository命令:

$ sudo add-apt-repository ppa:gluster/glusterfs-3.11

输出示例:

 
More info: https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-3.11
Press [ENTER] to continue or ctrl-c to cancel adding it
 
.gpg: keyring `/tmp/tmpzf35_hah/secring.gpg' created
gpg: keyring `/tmp/tmpzf35_hah/pubring.gpg' created
gpg: requesting key 3FE869A9 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpzf35_hah/trustdb.gpg: trustdb created
gpg: key 3FE869A9: public key "Launchpad PPA for Gluster" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

使用apt-get命令/apt命令来更新它:

$ sudo apt-get update
$ sudo apt-get install glusterfs-client -y

输出示例:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  glusterfs-common libibverbs1 librdmacm1 liburcu4
The following NEW packages will be installed:
  glusterfs-client glusterfs-common libibverbs1 librdmacm1 liburcu4
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 3271 kB of archives.
After this operation, 15.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libibverbs1 amd64 1.1.8-1.1ubuntu2 [25.0 kB]
Get:2 http://ppa.launchpad.net/gluster/glusterfs-3.11/ubuntu xenial/main amd64 glusterfs-common amd64 3.11.1-ubuntu1~xenial2 [3129 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 librdmacm1 amd64 1.0.21-1 [49.1 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial/universe amd64 liburcu4 amd64 0.9.1-3 [47.3 kB]
....
..
...
Processing triggers for ureadahead (0.100.0-19) ...
 
Setting up libibverbs1 (1.1.8-1.1ubuntu2) ...
Setting up librdmacm1 (1.0.21-1) ...
Setting up liburcu4:amd64 (0.9.1-3) ...
Setting up glusterfs-common (3.11.1-ubuntu1~xenial2) ...
Setting up glusterfs-client (3.11.1-ubuntu1~xenial2) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for ureadahead (0.100.0-19) ...

步骤4在Lxc/Lxd VM上安装Glusterfs客户端

您需要使用mkdir命令创建安装点:

$ sudo mkdir /data/

如下安装:

$ sudo mount -t glusterfs gfs01:/gvol0 /data/

如下更新/etc/fstab:

$ echo 'gfs01:/gvol0 /data glusterfs defaults,_netdev 0 0' >> /etc/fstab

保存并关闭文件。
您现在可以将数据存储在/data /位置,它将在整个集群中复制:

$ cd /data/
$ ls -l

示例输出(我将网站存储在glusterfs上):

total 4
drwxr-xr-x 5 root root 4096 Jul 17 22:19 www.theitroad.local