Configure HA with DRBD on CentOS 7 #3 SSHFS

고 가용성을 위한 DRBD 구성 가이드 3편 – SSHFS 구성

DRBD 를 이용한 고 가용성 구성을 위해 Configure HA with DRBD on CentOS 7 #1 DRBD | Umount Blog 페이지와 Configure HA with DRBD on CentOS 7 #2 Pacemaker | Umount Blog 페이지를 통해 DRBD 및 Pacemaker 를 설치하고 구성해 보았습니다. 이번에는 SSHFS 서비스를 구성하여 실제로 Failover(페일오버) 및 데이터 복제가 잘 되는지 확인 해 보도록 하겠습니다.

SSHFS 는 원격지에 파일을 공유할 수 있게 해주는 NFS 서비스와 매우 흡사합니다. SSH 를 이용하기 때문에 NFS 를 이용한 평문 데이터 전송보다는 안전하다고 볼 수 있습니다. SSHFS 는 FUSE 기반으로 동작하며, 클라이언트는 SFTP 를 이용하여 파일 접근을 하게 됩니다.

또한 SSH 를 이용하여 클라이언트에서 원격지 서버에 접속하기 때문에 비밀번호 입력 없이 접속할 수 있도록 서버의 ssh-key 를 클라이언트에 등록해 주어야 합니다.

구성 환경

VIP : 10.19.10.195
마스터 서버 : 10.19.10.196
백업 서버 : 10.19.10.197
클라이언트 서버 : 10.19.10.190

SSHFS 구성

서버 설정

마스터 / 백업 서버 공통 작업

계정 : webuser
SOURCE 디렉토리 : /data/shared

계정 생성

[root@10-19-10-196 /]# useradd -m -d /data/shared -r -s /sbin/nologin webuser
[root@10-19-10-196 /]# mkdir -p /data/shared/.ssh
[root@10-19-10-196 /]# chmod 700 /data/shared/.ssh
[root@10-19-10-196 /]# chown webuser.webuser /data/shared/.ssh

sshd_config 설정 수정
: vi /etc/ssh/sshd_config

Subsystem sftp internal-sftp

Match User webuser
    AuthorizedKeysFile /data/shared/.ssh/authorized_keys
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

sshd 재시작

[root@10-19-10-196 /]# systemctl restart sshd

마스터 서버 작업

Source 루트 디렉토리 생성 및 권한 설정

[root@10-19-10-196 /]# mkdir -p /data/shared
[root@10-19-10-196 /]# chown root. /data/shared/

SOURCE 디렉토리 생성 및 권한 설정

[root@10-19-10-196 /]# mkdir -p /data/shared/umount.net
[root@10-19-10-196 /]# chown webuser. /data/shared/umount.net/

클라이언트 설정

계정 : webuser
TARGET 디렉토리 : /data/www/share-dir

사용자 생성

[root@10-19-10-190 /]# useradd webuser

ssh-key 생성

[root@10-19-10-190 /]# su - webuser
[webuser@10-19-10-190 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/webuser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/webuser/.ssh/id_rsa.
Your public key has been saved in /home/webuser/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Qgr8A0ZhJiQwj94T1BJgIwujm+WCDiQim78y2C/99A8 webuser@10-19-10-190
The key's randomart image is:
+---[RSA 2048]----+
|@=*+o |
|*%o. . |
|B.B.. . |
|BO.+.o |
|O..o+ . S |
|oo .. . |
|.o.. . E |
|+ o... . . |
| o.o... ... |
+----[SHA256]-----+

생성된 id_rsa.pub 를 마스터 서버의 /data/shared/.ssh/authorized_keys 로 복사 후 권한을 변경 해 줍니다. (복사 방법은 scp, ftp, rsync 등 원하시는 형태로 하시면 됩니다.)

[root@10-19-10-196 /]# chmod 600 /data/shared/.ssh/authorized_keys
[root@10-19-10-196 /]# chown webuser.webuser /data/shared/.ssh/authorized_keys

클라이언트 서버에서 VIP 로 비밀번호 없이 접속 되는지 테스트를 해 줍니다.

[root@10-19-10-190 /]# sftp webuser@10.19.10.195

공유 디렉토리 생성 및 권한 설정

[root@10-19-10-190 /]# mkdir -p /data/www/share-dir
[root@10-19-10-190 /]# chown webuser. /data/www/share-dir

마운트

[root@10-19-10-190 /]# yum install -y sshfs
[root@10-19-10-190 /]# sshfs webuser@10.19.10.195:/umount.net/ /data/www/share-dir/

마운트 확인

[root@10-19-10-190 /]# df -h
Filesystem                               Size  Used Avail Use% Mounted on
devtmpfs                                 1.9G     0  1.9G   0% /dev
tmpfs                                    1.9G     0  1.9G   0% /dev/shm
tmpfs                                    1.9G   18M  1.9G   1% /run
tmpfs                                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root                  7.0G  2.8G  4.2G  40% /
/dev/sda1                               1014M  272M  743M  27% /boot
webuser@10.19.10.195:/umount.net          50G   33M   50G   0% /data/www/share-dir

fstab 등록 예제

webuser@10.19.10.195:webuser@10.19.10.195:/umount.net/ /data/www/share-dir/ fuse.sshfs defaults,_netdev,delay_connect 0 0

장애 조치 확인

페이스메이커에서 장애 조치가 되어 VIP 가 변경되면 클라이언트에서는 마운트가 해제 됩니다. 이를 해결하기 위한 여러가지 방법이 있지만 간단한 테스트를 위해 Crontab 을 이용해 보았습니다.

[root@10-19-10-190 /]# crontab -e
* * * * * "mount -a"

Crontab 등록 후 간단한 테스트를 위해 마운트 된 디렉토리에 파일을 몇 개 생성합니다. 그리고 난 후 DRBD 마스터 서버를 shutdown 하여 장애 상황을 만들면 페이스메이커에서는 이를 인지하고 백업 서버에 VIP 를 할당해 줍니다.

클라이언트에서는 마운트 된 디렉토리가 해제 되고 1분 뒤에 자동으로 다시 마운트가 올라오기 때문에 마운트 된 디렉토리에서 생성된 파일들이 정상적으로 복제가 되었는지 확인 해 보시면 됩니다.

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x