스토리지 설정 · 3 min read · Jan 07, 2026
Debian Lenny에서 GlusterFS를 이용한 고가용성 스토리지 - 두 스토리지 서버 간 자동 파일 복제 - 페이지 2
3 GlusterFS 클라이언트 설정
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/nullmake && 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 replicate type cluster/replicate subvolumes remote1 remote2 end-volume volume writebehind type performance/write-behind option window-size 1MB subvolumes replicate 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이제 다음의 출력에서 새로운 공유를 볼 수 있어야 합니다…
mountclient1:/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)
udev 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 -hclient1:/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
19G 804M 17G 5% /mnt/glusterfs
client1:/tmp/glusterfs-2.0.1#( server1.example.com과 server2.example.com 각각 GlusterFS 파일 시스템을 위해 19GB의 공간을 가지고 있지만, 데이터가 미러링되기 때문에 클라이언트는 38GB(2 x 19GB)가 아닌 19GB만 볼 수 있습니다.)
클라이언트에서 GlusterFS 공유를 수동으로 마운트하는 대신, /etc/fstab을 수정하여 클라이언트가 부팅할 때 공유가 자동으로 마운트되도록 할 수 있습니다.
/etc/fstab을 열고 다음 줄을 추가합니다:
vi /etc/fstab| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |
수정된 /etc/fstab이 작동하는지 테스트하려면 클라이언트를 재부팅합니다:
reboot재부팅 후, 다음의 출력에서 공유를 찾아야 합니다…
df -h… 그리고…
mount4 테스트
이제 GlusterFS 공유에 테스트 파일을 생성해 보겠습니다:
client1.example.com:
touch /mnt/glusterfs/test1
touch /mnt/glusterfs/test2이제 server1.example.com 및 server2.example.com의 /data/export 디렉토리를 확인해 보겠습니다. test1 및 test2 파일이 각 노드에 있어야 합니다:
server1.example.com/server2.example.com:
ls -l /data/exportserver1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:32 test2
server1:~#이제 server1.example.com을 종료하고 client1.example.com의 GlusterFS 공유에서 몇 개의 파일을 추가/삭제합니다.
server1.example.com:
shutdown -h nowclient1.example.com:
touch /mnt/glusterfs/test3
touch /mnt/glusterfs/test4
rm -f /mnt/glusterfs/test2변경 사항은 server2.example.com의 /data/export 디렉토리에서 볼 수 있어야 합니다:
server2.example.com:
ls -l /data/exportserver2:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:32 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:33 test4
server2:/tmp/glusterfs-2.0.1#server1.example.com을 다시 부팅하고 /data/export 디렉토리를 확인해 보겠습니다:
server1.example.com:
ls -l /data/exportserver1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:32 test2
server1:~#보시다시피, server1.example.com은 다운되어 있는 동안 발생한 변경 사항을 인식하지 못했습니다. 이를 쉽게 수정할 수 있으며, 우리가 해야 할 일은 client1.example.com의 GlusterFS 공유에서 읽기 명령을 호출하는 것입니다, 예:
client1.example.com:
ls -l /mnt/glusterfs/client1:~# ls -l /mnt/glusterfs/
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:32 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:33 test4
client1:~#이제 server1.example.com의 /data/export 디렉토리를 다시 확인해 보세요. 변경 사항이 해당 노드에 복제되었음을 확인할 수 있습니다:
server1.example.com:
ls -l /data/exportserver1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:52 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:52 test4
server1:~#5 링크
- GlusterFS: http://www.gluster.org/
- Debian: http://www.debian.org/
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.