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