article about glusterfs
Signed-off-by: Nico Schottelius <nico@freiheit.schottelius.org>
This commit is contained in:
parent
374aad714e
commit
cc4ff86547
3 changed files with 98 additions and 0 deletions
90
blog/how-to-access-gluster-from-multiple-networks.mdwn
Normal file
90
blog/how-to-access-gluster-from-multiple-networks.mdwn
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
[[!meta title="How to access gluster running from multiple networks"]]
|
||||||
|
|
||||||
|
# TL;DR
|
||||||
|
|
||||||
|
Create volumes name based instead of IP based:
|
||||||
|
|
||||||
|
gluster volume create xfs-plain replica 2 transport vmhost1:/home/gluster vmhost2:/home/gluster
|
||||||
|
|
||||||
|
instead of
|
||||||
|
|
||||||
|
gluster volume create xfs-plain replica 2 transport 192.168.0.1:/home/gluster 192.168.0.2:/home/gluster
|
||||||
|
And have the names point to different IP addresses.
|
||||||
|
|
||||||
|
## The setup
|
||||||
|
|
||||||
|
The basic setup (in our case) looks like this:
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------
|
||||||
|
| Clients / Users |
|
||||||
|
---------------------------------
|
||||||
|
|
|
||||||
|
|
|
||||||
|
--------------------------------- ---------------------------------
|
||||||
|
| frontend (with opennebula) | ---| vmhost1 with glusterfs |
|
||||||
|
--------------------------------- / ---------------------------------
|
||||||
|
| / eth0 eth1
|
||||||
|
|-------------------------< ||
|
||||||
|
\ eth0 eth1
|
||||||
|
\ ---------------------------------
|
||||||
|
---| vmhost2 with glusterfs |
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
The frontend running [[!opennebula]] connects to
|
||||||
|
**vmhost1** and **vmhost2** using their public interfaces.
|
||||||
|
|
||||||
|
The gluster bricks running on the vm hosts are supposed to communicate
|
||||||
|
via eth1, so that the traffic for [[!gluster]] does not influence
|
||||||
|
the traffic of the virtual machines to the Internet. The gluster filesystem
|
||||||
|
of the vmhosts is only thought to be used by the virtual machines running
|
||||||
|
on those two hosts - an isolated cluster. Thus the volume initially has been created
|
||||||
|
like this:
|
||||||
|
|
||||||
|
gluster volume create xfs-plain replica 2 transport 192.168.0.1:/home/gluster 192.168.0.2:/home/gluster
|
||||||
|
|
||||||
|
## The problem
|
||||||
|
|
||||||
|
However, the frontend requires access to the gluster volume, because
|
||||||
|
[[!opennebula]] needs to copy and import the VM image into the gluster
|
||||||
|
datastore. Even though the *glusterd* process listens on any IP address,
|
||||||
|
the volume contains the information that it runs on 192.168.0.1
|
||||||
|
and 192.168.0.2 and is thus not reachable from the frontend.
|
||||||
|
|
||||||
|
## Using name based volumes
|
||||||
|
|
||||||
|
The frontend can reach the vm hosts via **vmhost1** and **vmhost2**,
|
||||||
|
which resolves to their **public IP addresses** via DNS.
|
||||||
|
|
||||||
|
On the vm hosts we created entries in **/etc/hosts** using [[!cdist]]
|
||||||
|
that looks as following:
|
||||||
|
|
||||||
|
192.168.0.1 vmhost1
|
||||||
|
192.168.0.2 vmhost2
|
||||||
|
|
||||||
|
Now we re-created the volume using
|
||||||
|
|
||||||
|
gluster volume create xfs-plain replica 2 transport tcp vmhost1:/home/gluster vmhost2:/home/gluster
|
||||||
|
gluster volume start xfs-plain
|
||||||
|
|
||||||
|
And it correctly shows up in the volume info:
|
||||||
|
|
||||||
|
%gluster volume info
|
||||||
|
Volume Name: xfs-plain
|
||||||
|
Type: Replicate
|
||||||
|
Volume ID: fe45c626-c79d-4e67-8f19-77938470f2cf
|
||||||
|
Status: Started
|
||||||
|
Number of Bricks: 1 x 2 = 2
|
||||||
|
Transport-type: tcp
|
||||||
|
Bricks:
|
||||||
|
Brick1: vmhost1-cluster1.place4.ungleich.ch:/home/gluster
|
||||||
|
Brick2: vmhost2-cluster1.place4.ungleich.ch:/home/gluster
|
||||||
|
|
||||||
|
And now we can mount it successfully on the frontend using
|
||||||
|
|
||||||
|
% mount -t glusterfs vmhost2:/xfs-plain /mnt/gluster
|
||||||
|
|
||||||
|
[[!inline pages="follow-up-include" archive="yes" show=0 quick=no]]
|
||||||
|
|
||||||
|
[[!tag gluster filesystem unix ungleich]]
|
7
follow-up-including.mdwn
Normal file
7
follow-up-including.mdwn
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
## Follow up
|
||||||
|
|
||||||
|
If you find this article interesting, you may want to stay updated by following
|
||||||
|
me and ungleich on Twitter:
|
||||||
|
|
||||||
|
* [[!twitter ungleich]]
|
||||||
|
* [[!twitter NicoSchottelius]]
|
|
@ -36,6 +36,7 @@
|
||||||
* [[!shortcut name=notmuch desc="notmuch" url="http://notmuchmail.org/"]]
|
* [[!shortcut name=notmuch desc="notmuch" url="http://notmuchmail.org/"]]
|
||||||
* [[!shortcut name=opennebula desc="Opennebula" url="http://www.opennebula.org"]]
|
* [[!shortcut name=opennebula desc="Opennebula" url="http://www.opennebula.org"]]
|
||||||
* [[!shortcut name=ceph desc="Ceph" url="http://ceph.com/"]]
|
* [[!shortcut name=ceph desc="Ceph" url="http://ceph.com/"]]
|
||||||
|
* [[!shortcut name=gluster desc="Gluster" url="http://www.gluster.org/"]]
|
||||||
* [[!shortcut name=consul desc="Consul" url="http://consul.io/"]]
|
* [[!shortcut name=consul desc="Consul" url="http://consul.io/"]]
|
||||||
* [[!shortcut name=icinga desc="Icinga" url="https://www.icinga.org/"]]
|
* [[!shortcut name=icinga desc="Icinga" url="https://www.icinga.org/"]]
|
||||||
* [[!shortcut name=nagios desc="Nagios" url="http://www.nagios.org/"]]
|
* [[!shortcut name=nagios desc="Nagios" url="http://www.nagios.org/"]]
|
||||||
|
|
Loading…
Reference in a new issue