GlusterFS · 3 min read · Feb 07, 2026

글러스터FS를 이용한 네 개의 저장 노드에 분산 저장 - 페이지 2

3 글러스터FS 클라이언트 설정

client1.example.com:

클라이언트에서 우리는 fuse와 GlusterFS를 설치해야 합니다. Debian 저장소에서 libfuse2 패키지를 설치하는 대신, GlusterFS에 대한 더 나은 지원을 제공하는 패치된 버전을 설치합니다.

먼저, 다시 필수 패키지를 설치합니다:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev

그런 다음, 다음과 같이 fuse를 빌드합니다 (최신 패치된 fuse 버전은 ftp://ftp.zresearch.com/pub/gluster/glusterfs/fuse/에서 찾을 수 있습니다):

cd /tmp  
wget ftp://ftp.zresearch.com/pub/gluster/glusterfs/fuse/fuse-2.7.4glfs11.tar.gz  
tar -zxvf fuse-2.7.4glfs11.tar.gz  
cd fuse-2.7.4glfs11  
./configure  
make && make install

그 후, GlusterFS를 빌드합니다 (서버에서와 마찬가지로)…

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz  
tar xvfz glusterfs-2.0.1.tar.gz  
cd glusterfs-2.0.1  
./configure --prefix=/usr > /dev/null
make && make install  
ldconfig  
glusterfs --version

… 그리고 다음 두 디렉토리를 생성합니다:

mkdir /mnt/glusterfs  
mkdir /etc/glusterfs

다음으로, 파일 /etc/glusterfs/glusterfs.vol를 생성합니다:

vi /etc/glusterfs/glusterfs.vol

| volume remote1 type protocol/client option transport-type tcp option remote-host server1.example.com option remote-subvolume brick end-volume volume remote2 type protocol/client option transport-type tcp option remote-host server2.example.com option remote-subvolume brick end-volume volume remote3 type protocol/client option transport-type tcp option remote-host server3.example.com option remote-subvolume brick end-volume volume remote4 type protocol/client option transport-type tcp option remote-host server4.example.com option remote-subvolume brick end-volume volume distribute type cluster/distribute subvolumes remote1 remote2 remote3 remote4 end-volume volume writebehind type performance/write-behind option window-size 1MB subvolumes distribute end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |

옵션 remote-host 줄에서 올바른 서버 호스트 이름이나 IP 주소를 사용해야 합니다!

그게 다입니다! 이제 다음 두 명령 중 하나를 사용하여 GlusterFS 파일 시스템을 /mnt/glusterfs에 마운트할 수 있습니다:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

또는

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

이제 다음의 출력에서 새로운 공유를 볼 수 있어야 합니다…

mount
client1:/tmp/glusterfs-2.0.1# mount  
/dev/sda1 on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
odev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
fusectl on /sys/fs/fuse/connections type fusectl (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,max_read=131072,allow_other,default_permissions)  
client1:/tmp/glusterfs-2.0.1#

… 그리고…

df -h
client1:/tmp/glusterfs-2.0.1# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/sda1              29G  935M   27G   4% /  
tmpfs                 126M     0  126M   0% /lib/init/rw  
udev                   10M   80K   10M   1% /dev  
tmpfs                 126M     0  126M   0% /dev/shm  
/etc/glusterfs/glusterfs.vol  
                     105G  3.4G   96G   4% /mnt/glusterfs  
client1:/tmp/glusterfs-2.0.1#

( server1.example.com, server2.example.com, server3.example.com, server4.example.com 각각은 GlusterFS 파일 시스템을 위해 약 26GB의 공간을 가지고 있으므로, 결과 공유의 크기는 약 4 x 26GB (105GB)입니다.)

클라이언트에서 GlusterFS 공유를 수동으로 마운트하는 대신, /etc/fstab을 수정하여 클라이언트가 부팅할 때 자동으로 공유가 마운트되도록 할 수 있습니다.

/etc/fstab을 열고 다음 줄을 추가합니다:

vi /etc/fstab

| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |

수정된 /etc/fstab이 작동하는지 테스트하려면 클라이언트를 재부팅합니다:

reboot

재부팅 후, 다음의 출력에서 공유를 찾을 수 있어야 합니다…

df -h

… 그리고…

mount

4 테스트

이제 GlusterFS 공유에 테스트 파일을 생성해 보겠습니다:

client1.example.com:

touch /mnt/glusterfs/test1  
touch /mnt/glusterfs/test2  
touch /mnt/glusterfs/test3  
touch /mnt/glusterfs/test4  
touch /mnt/glusterfs/test5  
touch /mnt/glusterfs/test6

이제 server1.example.com, server2.example.com, server3.example.com 및 server4.example.com의 /data/export 디렉토리를 확인해 보겠습니다. 각 저장 노드가 클라이언트의 GlusterFS 공유를 구성하는 파일/디렉토리의 일부만 보유하고 있음을 알 수 있습니다:

server1.example.com:

ls -l /data/export
server1:/tmp/glusterfs-2.0.1# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-06-02 18:04 test1  
-rw-r--r-- 1 root root 0 2009-06-02 18:05 test2  
-rw-r--r-- 1 root root 0 2009-06-02 18:06 test5  
server1:/tmp/glusterfs-2.0.1#

server2.example.com:

ls -l /data/export
server2:/tmp/glusterfs-2.0.1# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-06-02 18:06 test4  
server2:/tmp/glusterfs-2.0.1#

server3.example.com:

ls -l /data/export
server3:/tmp/glusterfs-2.0.1# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-06-02 18:07 test6  
server3:/tmp/glusterfs-2.0.1#

server4.example.com:

ls -l /data/export
server4:/tmp/glusterfs-2.0.1# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-06-02 18:06 test3  
server4:/tmp/glusterfs-2.0.1#

5 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.