GlusterFS에서 볼륨에 2개의 노드(서버)가 있다고 가정해 보겠습니다. 볼륨 정보가 다음과 같다고 가정합니다.
Volume Name: volume-www
Brick1: gluster-server-01:/volume-www/brick
Brick2: gluster-server-02:/volume-www/brick
클라이언트로부터 알고 있듯이 volume-www
하나의 서버에서 볼륨을 마운트해야 합니다. 좋다:
mount -t glusterfs gluster-server-01:/volume-www /var/www
아직까지 연결만 되어 있어서 병목 현상이 있는 것 같은 느낌이 듭니다 gluster-server-01
.
- 실패하면 어떻게 되나요?
물론 다른 정상 서버에서 수동으로 다시 마운트할 수도 있습니다. 그런데 이 문제를 해결할 수 있는 더 현명한 방법(산업적 접근 방식)이 있을까요?
답변1
이 작업을 수행할 때:
mount -t glusterfs gluster-server-01:/volume-www /var/www
처음에는 Gluster 볼륨을 구성하는 노드 중 하나에 연결하지만 FUSE 기반의 Gluster Native Client는 다른 노드에 대한 정보를 받습니다 gluster-server-01
. 이제 클라이언트는 다른 노드에 대해 알고 있으므로 장애 조치 시나리오를 적절하게 처리할 수 있습니다.
답변2
OpenUserX03의 답변정확하지 않습니다.
클라이언트가 Gluster 서버 노드에 연결하면 모든 노드에 대한 정보를 받습니다. 그 후 여러 노드와 동시에 통신을 시작합니다. 따라서 노드가 종료되면 "장애 조치"가 발생하지 않고 노드만 손실되지만 다른 노드와의 통신은 계속 유지됩니다.
기록 노트에서:
mount 명령에 지정된 서버는 볼륨 이름을 설명하는 Gluster 구성 volfile을 가져오는 데에만 사용됩니다. 그런 다음 클라이언트는 volfile에 언급된 서버(마운트에 사용된 서버를 포함하지 않을 수도 있음)와 직접 통신합니다.
답변3
다음 두 가지 방법을 사용할 수 있습니다.
- backupvolfile 옵션 fstab 사용
server1_name:/media /media glusterfs 기본값,_netdev,backupvolfile-server=server2_name,log-level=WARNING,log-file=/var/log/gluster.log 0 0
- 데이터 파일 /etc/datastore.vol 생성 예
volume mymedia-client-0 type protocol/client option clnt-lk-version 1 option volfile-checksum 0 option volfile-key /mymedia option client-version 3.8.12 option process-uuid server01.vn-7565-2017/10/03-02 option fops-version 1298437 option ping-timeout 42 option remote-host 192.168.10.79 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-client-1 type protocol/client option clnt-lk-version 1 option volfile-checksum 0 option volfile-key /mymedia option client-version 3.8.12 option process-uuid server01.vn-7565-2017/10/03-02 option fops-version 1298437 option ping-timeout 42 option remote-host 192.168.10.80 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-replicate-0 type cluster/replicate subvolumes mymedia-client-0 mymedia-client-1 end-volume volume mymedia-client-2 type protocol/client option ping-timeout 42 option remote-host 192.168.10.81 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-client-3 type protocol/client option ping-timeout 42 option remote-host 192.168.10.82 option remote-subvolume /data01/brick option transport-type socket option transport.address-family inet option send-gids true end-volume volume mymedia-replicate-1 type cluster/replicate subvolumes mymedia-client-2 mymedia-client-3 end-volume volume mymedia-dht type cluster/distribute option lock-migration off subvolumes mymedia-replicate-0 mymedia-replicate-1 end-volume volume mymedia-write-behind type performance/write-behind subvolumes mymedia-dht end-volume volume mymedia-read-ahead type performance/read-ahead subvolumes mymedia-write-behind end-volume volume mymedia-readdir-ahead type performance/readdir-ahead subvolumes mymedia-read-ahead end-volume volume mymedia-io-cache type performance/io-cache subvolumes mymedia-readdir-ahead end-volume volume mymedia-quick-read type performance/quick-read subvolumes mymedia-io-cache end-volume volume mymedia-open-behind type performance/open-behind subvolumes mymedia-quick-read end-volume volume mymedia-md-cache type performance/md-cache subvolumes mymedia-open-behind end-volume volume mymedia type debug/io-stats option log-level INFO option latency-measurement off option count-fop-hits off subvolumes mymedia-md-cache end-volume volume meta-autoload type meta subvolumes mymedia end-volume
fstab 내용과 비교:
/etc/datastore.vol /media glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0