summaryrefslogtreecommitdiffstats
path: root/doc/admin-guide/en-US/admin_settingup_clients.xml
blob: 233aac4389cd311ab1e6d16d2b1bcad34ea23268 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
<?xml version='1.0' encoding='UTF-8'?>
<!-- This document was created with Syntext Serna Free. --><!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Administration_Guide.ent">
%BOOK_ENTITIES;
]>
<chapter id="chap-Administration_Guide-GlusterFS_Client">
  <title>Accessing Data - Setting Up GlusterFS Client</title>
  <para>Gluster volumes can be accessed in multiple ways. One can use Gluster Native Client method for high concurrency, performance and transparent failover in GNU/Linux clients. Gluster exports volumes using NFS v3 protocol too.</para>
  <para>CIFS can also be used to access volumes by exporting the Gluster Native mount point as a samba export.</para>
  <section id="sect-Administration_Guide-GlusterFS_Client-Native">
    <title>Gluster Native Client</title>
    <para>The Gluster Native Client is a FUSE-based client running in user space. Gluster Native Client is the recommended method for accessing volumes if all the clustered features of GlusterFS has to be utilized.</para>
    <para>This section introduces the Gluster Native Client and explains how to install the software on client machines. This section also describes how to mount volumes on clients (both manually and automatically). </para>
    <section>
      <title>Installing the Gluster Native Client</title>
      <para>Gluster Native Client has a dependancy on FUSE module. To make sure FUSE module is loaded, execute below commands: </para>
      <orderedlist>
        <listitem>
          <para>Add the FUSE loadable kernel module (LKM) to the Linux kernel:</para>
          <para><command># modprobe fuse</command></para>
        </listitem>
        <listitem>
          <para>Verify that the FUSE module is loaded:</para>
          <para><command># dmesg | grep -i fuse </command></para>
          <para><command>fuse init (API version 7.13)</command></para>
        </listitem>
      </orderedlist>
      <section id="sect-Administration_Guide-GlusterFS_Client-Native-RPM">
        <title>Installing on RPM Based Distributions </title>
        <para>To install Gluster Native Client on RPM distribution-based systems</para>
        <orderedlist>
          <listitem>
            <para>Install required prerequisites on the client using the following command:</para>
            <para><command>$ sudo yum -y install fuse fuse-libs</command></para>
          </listitem>
          <listitem>
            <para>Download the latest glusterfs, glusterfs-fuse RPM files on each client. The glusterfs package contains the GlusterFS Binary and required libraries. The glusterfs-fuse package contains the FUSE plugin (in GlusterFS terms, its called Translator) required for mounting.</para>
            <para><note><para>Install 'glusterfs-rdma' RPM if RDMA support is required. 'glusterfs-rdma' contains RDMA transport module for Infiniband interconnect.</para></note></para>
            <para>You can download the software at <ulink url="http://bits.gluster.com/gluster/glusterfs/3.3.0/x86_64/"/>.</para>
          </listitem>
          <listitem>
            <para>Install Gluster Native Client on the client.</para>
            <para><command>$ sudo rpm -i glusterfs-3.3.0-1.x86_64.rpm </command></para>
            <para><command>$ sudo rpm -i glusterfs-fuse-3.3.0-1.x86_64.rpm </command></para>
            <para><command>$ sudo rpm -i glusterfs-rdma-3.3.0-1.x86_64.rpm</command></para>
          </listitem>
        </orderedlist>
      </section>
      <section condition="gfs">
        <title>Installing on Debian-based Distributions</title>
        <para>To install Gluster Native Client on Debian-based distributions</para>
        <orderedlist>
          <listitem>
            <para>Download the latest GlusterFS .deb file.</para>
            <para>You can download the software at <ulink url="http://www.gluster.org/download/"/>.</para>
          </listitem>
          <listitem>
            <para>Uninstall GlusterFS v3.1.x/v3.2.x (or an earlier version) from the client using the following command:
</para>
            <para><command>$ sudo dpkg -r glusterfs </command></para>
            <para>(Optional) Run  <command>$ sudo dpkg -purge glusterfs </command>to purge the configuration files.</para>
          </listitem>
          <listitem>
            <para>Install Gluster Native Client on the client using the following command:
</para>
            <para><command>$ sudo dpkg -i glusterfs-$version.deb </command></para>
            <para>For example:
</para>
            <para><command>$ sudo dpkg -i glusterfs-3.3.0.deb </command></para>
          </listitem>
        </orderedlist>
      </section>
      <section>
        <title>Performing a Source Installation</title>
        <para>To build and install Gluster Native Client from the source code</para>
        <orderedlist>
          <listitem>
            <para>Create a new directory using the following commands:</para>
            <para><command># mkdir glusterfs </command></para>
            <para><command># cd glusterfs</command></para>
          </listitem>
          <listitem>
            <para>Download the source code.</para>
            <para>You can download the source at <ulink url="http://www.gluster.org/download/"/>.</para>
          </listitem>
          <listitem>
            <para>Extract the source code using the following command:
</para>
            <para><command># tar -xvzf glusterfs-3.3.0.tar.gz </command></para>
          </listitem>
          <listitem>
            <para>Run the configuration utility using the following command:
</para>
            <para><code># ./configure </code></para>
            <para><code>...</code></para>
            <para><code>GlusterFS configure summary </code></para>
            <para><code>=========================== </code></para>
            <para><code>FUSE client        : yes </code></para>
            <para><code>Infiniband verbs   : yes </code></para>
            <para><code>epoll IO multiplex : yes </code></para>
            <para><code>argp-standalone    : no </code></para>
            <para><code>fusermount         : no </code></para>
            <para><code>readline           : yes</code></para>
            <para><note><para>The configuration summary shown above is sample, it can vary depending on other packages.</para></note></para>
          </listitem>
          <listitem>
            <para>Build the Gluster Native Client software using the following commands:
</para>
            <para><command># make </command></para>
            <para><command># make install</command></para>
          </listitem>
          <listitem>
            <para>Verify that the correct version of Gluster Native Client is installed, using the following command:
</para>
            <para><command># glusterfs –-version</command></para>
          </listitem>
        </orderedlist>
      </section>
    </section>
    <section id="sect-Administration_Guide-GlusterFS_Client-Mounting_Volumes">
      <title>Mounting Volumes</title>
      <para>After installing the Gluster Native Client, you need to mount Gluster volumes to access data. There are two methods you can choose: </para>
      <itemizedlist>
        <listitem>
          <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-Manuall"/></para>
        </listitem>
        <listitem>
          <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-Automatic"/></para>
        </listitem>
      </itemizedlist>
      <para>After mounting a volume, you can test the mounted volume using the procedure described in <xref linkend="sect-Administration_Guide-GlusterFS_Client-Testing"/>. </para>
      <para><note>
          <para>Server names selected during creation of Volumes should be resolvable in the client machine. You can use appropriate /etc/hosts entries or DNS server to resolve server names to IP addresses. </para>
        </note></para>
        <section id="sect-Administration_Guide-GlusterFS_Client-Manuall">
          <title>Manually Mounting Volumes</title>
          <para>To manually mount a Gluster volume </para>
          <itemizedlist>
            <listitem>
              <para>To mount a volume, use the following command:
</para>
            <para><command># mount -t glusterfs HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR</command>
</para>
            <para>For example:
</para>
            <para><command># mount -t glusterfs server1:/test-volume /mnt/glusterfs</command></para>
            <note>
              <para>The server specified in the mount command is only used to fetch the gluster configuration volfile describing the volume name. Subsequently, the client will communicate directly with the servers mentioned in the volfile (which might not even include the one used for mount). </para>
            </note>
          </listitem>
        </itemizedlist>
      </section>
      <section id="sect-Administration_Guide-GlusterFS_Client-Automatic" dir="lro">
        <title>Automatically Mounting Volumes</title>
        <para><emphasis role="bold">To automatically mount a Gluster volume</emphasis></para>
        <itemizedlist>
          <listitem>
            <para>To mount a volume, edit the /etc/fstab file and add the following line:
</para>
            <para><command>HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfs defaults,_netdev 0 0 </command></para>
            <para>For example:
</para>
            <para><code>server1:/test-volume /mnt/glusterfs glusterfs defaults,_netdev 0 0</code></para>
          </listitem>
        </itemizedlist>
        <para><emphasis role="bold">Mounting Options</emphasis></para>
        <para>You can specify the following options when using the <command>mount -t glusterfs</command> command. Note that you need to separate all options with commas.</para>
        <para>backupvolfile-server=server-name</para>
        <para>fetch-attempts=N (where N is number of attempts)</para>
        <para>log-level=loglevel</para>
        <para>log-file=logfile</para>
        <para>direct-io-mode=[enable|disable]</para>
        <para>ro (for readonly mounts)</para>
        <para>acl (for enabling posix-ACLs)</para>
        <para>worm (making the mount WORM - Write Once, Read Many type)</para>
        <para>selinux (enable selinux on GlusterFS mount</para>
        <para></para>
        <para>For example: </para>
        <para><code># mount -t glusterfs -o backupvolfile-server=volfile_server2,fetch-attempts=2,log-level=WARNING,log-file=/var/log/gluster.log server1:/test-volume /mnt/glusterfs</code></para>
        <para>Using /etc/fstab, options would look like below:</para>
        <para><code>HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0 </code></para>
        <para>If <option>backupvolfile-server</option>  option is added while mounting fuse client, when the first
        volfile server fails, then the server specified in <option>backupvolfile-server</option> option is used as volfile server to mount the client.</para>
        <para>In <code>fetch-attempts=N</code> option, specify the number of attempts to fetch volume files while mounting a volume. This option will be useful when round-robin DNS is configured for the server-name. </para>
      </section>
    </section>
  </section>

  <section id="sect-Administration_Guide-GlusterFS_Client-NFS">
    <title>NFS</title>
    <para>You can use NFS v3 to access to gluster volumes.</para>
    <para>GlusterFS 3.3.0, now includes network lock manager (NLM) v4 feature too. NLM enables applications on NFSv3 clients to do record locking on files. NLM program is started automatically with the NFS server process.</para>
    <para>This section describes how to use NFS to mount Gluster volumes (both manually and automatically). </para>

    <section>
      <title>Using NFS to Mount Volumes</title>
      <para>You can use either of the following methods to mount Gluster volumes: </para>
      <para><itemizedlist>
          <listitem>
            <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-NFS-Manual"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-NFS-Automatic"/></para>
          </listitem>
        </itemizedlist></para>
      <para>After mounting a volume, you can test the mounted volume using the procedure described in <xref linkend="sect-Administration_Guide-GlusterFS_Client-Testing"/>. </para>

      <section id="sect-Administration_Guide-GlusterFS_Client-NFS-Manual">
        <title>Manually Mounting Volumes Using NFS </title>
        <para>To manually mount a Gluster volume using NFS </para>
        <itemizedlist>
          <listitem>
            <para>To mount a volume, use the following command:
</para>
            <para><command># mount -t nfs -o vers=3 HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR</command>
</para>
            <para>For example:</para>
            <para><command># mount -t nfs -o vers=3 server1:/test-volume /mnt/glusterfs</command></para>
            <para><note>
                <para> Gluster NFS server does not support UDP. If the NFS client you are using defaults to connecting using UDP, the following message appears: </para>
                <para><code>requested NFS version or transport protocol is not supported</code>. </para>
              </note></para>
            <para><emphasis role="bold">To connect using TCP</emphasis></para>
          </listitem>
          <listitem>
            <para>Add the following option to the mount command:
</para>
            <para><command>-o mountproto=tcp </command></para>
            <para>For example:
</para>
            <para><command># mount -o mountproto=tcp,vers=3 -t nfs server1:/test-volume /mnt/glusterfs</command></para>
          </listitem>
        </itemizedlist>
        <para><emphasis role="bold">To mount Gluster NFS server from a Solaris client </emphasis></para>
        <itemizedlist>
          <listitem>
            <para>Use the following command:
</para>
            <para><command># mount -o proto=tcp,vers=3 nfs://HOSTNAME-OR-IPADDRESS:38467/VOLNAME MOUNTDIR</command></para>
            <para>
For example:</para>
            <para><command> # mount -o proto=tcp,vers=3 nfs://server1:38467/test-volume /mnt/glusterfs</command></para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="sect-Administration_Guide-GlusterFS_Client-NFS-Automatic">
        <title>Automatically Mounting Volumes Using NFS</title>
        <para>You can configure your system to automatically mount Gluster volumes using NFS each time the system starts.</para>
        <para><emphasis role="bold">To automatically mount a Gluster volume using NFS </emphasis></para>
        <itemizedlist>
          <listitem>
            <para>To mount a volume, edit the /etc/fstab file and add the following line:</para>
            <para><command>HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR nfs defaults,_netdev,vers=3 0 0</command></para>
            <para>For example,</para>
            <para><command>server1:/test-volume /mnt/glusterfs nfs defaults,_netdev,vers=3 0 0</command></para>
            <para>If default transport to mount NFS is UDP, use below line in fstab</para>
            <para><command>server1:/test-volume /mnt/glusterfs nfs defaults,_netdev,mountproto=tcp 0 0</command></para>
          </listitem>
        </itemizedlist>
        <para><emphasis role="bold">To automount NFS mounts</emphasis></para>
        <para>Gluster supports *nix standard method of automounting NFS mounts. Update the /etc/auto.master and /etc/auto.misc and restart the autofs service. After that, whenever a user or process attempts to access the directory it will be mounted in the background. </para>
      </section>

    </section>

  </section>

  <section id="sect-Administration_Guide-GlusterFS_Client-CIFS">
    <title>CIFS</title>
    <para>You can use CIFS to access to volumes when using Microsoft Windows as well as SAMBA clients. For this access method, Samba packages need to be present on the client side. You can export glusterfs mount point as the samba export, and then mount it using CIFS protocol.</para>
    <para>This section describes how to mount CIFS shares on Microsoft Windows-based clients (both manually and automatically) and how to verify that the volume has mounted successfully.</para>
    <para><note>
        <para> CIFS access using the Mac OS X Finder is not supported, however, you can use the Mac OS X command line to access Gluster volumes using CIFS.</para>
      </note></para>

    <section>
      <title>Using CIFS to Mount Volumes</title>
      <para>You can use either of the following methods to mount Gluster volumes: </para>
      <itemizedlist>
        <listitem>
          <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-CIFS-Manual"/></para>
        </listitem>
        <listitem>
          <para><xref linkend="sect-Administration_Guide-GlusterFS_Client-CIFS-Automatic"/></para>
        </listitem>
      </itemizedlist>
      <para>After mounting a volume, you can test the mounted volume using the procedure described in <xref linkend="sect-Administration_Guide-GlusterFS_Client-Testing"/>.</para>
      <para>You can also use Samba for exporting Gluster Volumes through CIFS protocol.</para>

      <section>
        <title>Exporting Gluster Volumes Through Samba</title>
        <para>We recommend you to use Samba for exporting Gluster volumes through the CIFS protocol. </para>
        <para><emphasis role="bold">To export volumes through CIFS protocol </emphasis></para>
        <orderedlist>
          <listitem>
            <para>Mount a Gluster volume. For more information on mounting volumes, see <xref linkend="sect-Administration_Guide-GlusterFS_Client-Mounting_Volumes"/>.</para>
          </listitem>
          <listitem>
            <para>Setup Samba configuration to export the mount point of the Gluster volume.</para>
            <para>For example, if a Gluster volume is mounted on /mnt/gluster, you must edit smb.conf file to enable exporting this through CIFS. Open smb.conf file in an editor and add the following lines for a simple configuration:</para>
            <para>[glustertest] 
             </para>
            <para>   comment = For testing a Gluster volume exported through CIFS
             </para>
            <para>  path = /mnt/glusterfs
             </para>
            <para>  read only = no
             </para>
            <para>  guest ok = yes</para>
          </listitem>
        </orderedlist>
        <para>Save the changes and start the smb service using your systems init scripts (/etc/init.d/smb [re]start).</para>
        <para><note>
            <para>To be able mount from any server in the trusted storage pool, you must repeat these steps on each Gluster node. For more advanced configurations, see Samba documentation. </para>
          </note></para>
      </section>

      <section id="sect-Administration_Guide-GlusterFS_Client-CIFS-Manual">
        <title>Manually Mounting Volumes Using CIFS </title>
        <para>You can manually mount Gluster volumes using CIFS on Microsoft Windows-based client machines. </para>
        <para><emphasis role="bold">To manually mount a Gluster volume using CIFS </emphasis></para>
        <orderedlist>
          <listitem>
            <para>Using Windows Explorer, choose <emphasis role="bold">Tools &gt; Map Network Drive…</emphasis> from the menu. The <emphasis role="bold">Map Network Drive </emphasis>window appears. </para>
          </listitem>
          <listitem>
            <para>Choose the drive letter using the <emphasis role="bold">Drive</emphasis> drop-down list. </para>
          </listitem>
          <listitem>
            <para>Click <emphasis role="bold">Browse</emphasis>, select the volume to map to the network drive, and click <emphasis role="bold">OK</emphasis>. </para>
          </listitem>
          <listitem>
            <para>Click <emphasis role="bold">Finish.</emphasis></para>
          </listitem>
        </orderedlist>
        <para>The network drive (mapped to the volume) appears in the Computer window.</para>
        <para><emphasis role="bold">Alternatively, to manually mount a Gluster volume using CIFS.</emphasis></para>
        <itemizedlist>
          <listitem>
            <para>Click <emphasis role="bold">Start &gt; Run</emphasis> and enter the following:</para>
            <para><command>
                <code>\\SERVERNAME\VOLNAME</code>
              </command></para>
            <para>For example:</para>
            <para><command>
                <code>\\server1\test-volume</code>
              </command></para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="sect-Administration_Guide-GlusterFS_Client-CIFS-Automatic">
        <title>Automatically Mounting Volumes Using CIFS</title>
        <para>You can configure your system to automatically mount Gluster volumes using CIFS on Microsoft Windows-based clients each time the system starts.</para>
        <para><emphasis role="bold">To automatically mount a Gluster volume using CIFS</emphasis></para>
        <para>The network drive (mapped to the volume) appears in the Computer window and is reconnected each time the system starts.</para>
        <orderedlist>
          <listitem>
            <para>Using Windows Explorer, choose <emphasis role="bold">Tools &gt; Map Network Drive…</emphasis> from the menu. The <emphasis role="bold">Map Network Drive </emphasis>window appears. </para>
          </listitem>
          <listitem>
            <para>Choose the drive letter using the <emphasis role="bold">Drive</emphasis> drop-down list. </para>
          </listitem>
          <listitem>
            <para>Click <emphasis role="bold">Browse</emphasis>, select the volume to map to the network drive, and click <emphasis role="bold">OK</emphasis>. </para>
          </listitem>
          <listitem>
            <para>Click the <emphasis role="bold">Reconnect</emphasis> at logon checkbox.</para>
          </listitem>
          <listitem>
            <para>Click <emphasis role="bold">Finish.</emphasis></para>
          </listitem>
        </orderedlist>
      </section>

    </section>
  </section>
  <section id="sect-Administration_Guide-GlusterFS_Client-Testing">
    <title>Testing Mounted Volumes</title>
    <para>To test mounted volumes</para>
    <itemizedlist>
      <listitem>
        <para>Use the following command:</para>
        <para><command># mount </command></para>
        <para>If the gluster volume was successfully mounted, the output of the mount command on the client will be similar to this example:</para>
        <para><code>server1:/test-volume on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072</code></para>
      </listitem>
    </itemizedlist>
    <itemizedlist>
      <listitem>
        <para>Use the following command:</para>
        <para><command># df -h </command></para>
        <para>The output of df command on the client will display the aggregated storage space from all the bricks in a volume similar to this example:</para>
        <para><code># df -h /mnt/glusterfs</code></para>
        <para><code>Filesystem          Size Used Avail Use% Mounted on </code></para>
        <para><code>server1:/test-volume 28T 22T  5.4T   82% /mnt/glusterfs</code></para>
      </listitem>
      <listitem>
        <para>Change to the directory and list the contents by entering the following:</para>
        <para><command># cd MOUNTDIR </command></para>
        <para><command># ls</command></para>
      </listitem>
      <listitem>
        <para>For example,</para>
        <para><code># cd /mnt/glusterfs </code></para>
        <para><code># ls</code></para>
      </listitem>
    </itemizedlist>
  </section>
</chapter>