DRBD + Pacemaker + SSHFS on CentOS 7 #3 – SSHFS
SSHFS 구성
서버 설정
Master / Slave 모두 적용
// 공유대상 사용자 : webuser
// 공유대상 디렉토리 : /data/shared
1. 사용자생성
[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
2. sshd_config 설정수정
: vi /etc/ssh/sshd_config
// 이 부분을 찾아서 Subsystem sftp /usr/lib/openssh/sftp-server // 이렇게 변경 Subsystem sftp internal-sftp // 아래줄에 아래 내용 추가 Match User webuser AuthorizedKeysFile /data/shared/.ssh/authorized_keys ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
3. sshd 재시작
[root@10-19-10-196 /]# systemctl restart sshd
Master만 적용
1. 공유대상 루트 디렉토리 생성 및 권한 설정
[root@10-19-10-196 /]# mkdir -p /data/shared [root@10-19-10-196 /]# chown root. /data/shared/
2. 공유대상 디렉토리 생성 및 권한 설정
[root@10-19-10-196 /]# mkdir -p /data/shared/umount.net [root@10-19-10-196 /]# chown webuser. /data/shared/umount.net/
클라이언트 설정
// 공유 디렉토리 사용자 : webuser
// 공유 디렉토리 : /data/www/share-dir
1. 사용자 생성
[root@10-19-10-190 /]# useradd webuser
2. 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]-----+
3. 생성된 id_rsa.pub 를 SSHFS서버(Master)의 /data/shared/.ssh/authorized_keys 로 복사
(방법은 자유롭게 편한대로)
4. 서버에 복사한 /data/shared/.ssh/authorized_keys 파일 권한 수정
[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
5. 클라이언트에서 서버에 비밀번호 없이 접속되는지 테스트 필수
// IP는 pcs에서 설정한 VIP 입력
[root@10-19-10-190 /]# sftp webuser@10.19.10.195
6. 공유 디렉토리 생성 및 권한 설정
[root@10-19-10-190 /]# mkdir -p /data/www/share-dir [root@10-19-10-190 /]# chown webuser. /data/www/share-dir
7. sshfs 마운트 실행
// IP는 pcs에서 설정한 VIP 입력
[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/
8. 마운트 확인
[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
TIP 1. 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
// 장애조치
// pcs에서 장애조치가 되어 VIP가 변경되면 클라이언트에서는 마운트 해제 상태가 된다.
// 여러가지 방법이 있겠지만 이를 방지하기 위해 간단한 방법으로 crontab을 이용할 수 있다.
[root@10-19-10-190 /]# crontab -e * * * * * "mount -a"