클라우드 아키텍트 양성과정

리눅스(CentOS) 파일기반 공유 스토리지

종바깅 2021. 5. 12. 11:21

파일기반 공유 스토리지

  1. 블록 기반 스토리지
    • DAS : Direct Attached Storage
    • SAN : Storage Area Network - FC(FibreChannel) - iSCSI
  2. 파일 기반 스토리지
    • NAS : Network Attached Storage - NFS/CIFS

NFS(Network FIle System)

  • 유닉스/리눅스 계열 시스템의 기본 파일 공유 형태
  • Sun Microsystems(Solaris Unix, Java)
  • 파일 기반의 공유 스토리지 : 공유 서버에서 성정한 공유 디렉토리를 다른 시스템이 연결하여 사용

NFS 실습

  1. NFS 서버관련 기능 설치

     # yum search nfs-utils
     # yum -y install nfs-utils
  2. NFS 공유 설정

    /etc/exports 파일을 수정하여 공유 설정 추가

    공유 디렉토리 공유대상 ([옵션])

    • 공유할 디렉토리 생성

        mkdir /share
        chmod 777 /share
    • 공유 설정 예시

        # vi /etc/exports
      
        /share          192.168.100.0/24
        #/share          192.168.100.200
        #/share          www.example.local
        #/share          *.example.local
        #/share          192.168.100.0/24 192.168.101.0/24
        #/share          server[1-5].example.local
      
    • 방화벽 설정 변경

        # firewall-cmd --add-service=nfs --permanent
        # firewall-cmd --add-service=rpc-bind --permanent
        # firewall-cmd --add-service=mountd --permanent
        # firewall-cmd --reload
- NFS 연결(클라이언트에서 실행)

    - 일반 저장장치 : mount <저장소장치> <마운트포인트>

    - NFS 연결 : mount -t nfs [원격 nfs 디렉토리 정보] [마운트 포인트]

        마운트포인트 생성 및 마운트

        ```
        # mkdir /mount/nfs
        # mount -t nfs 192.168.100.100:/share /mount/nfs
        ```

- NFS공유 설정 변경

    - 기존 공유 설정(/etc/exports) 파일의 공유 설정을 읽기/ 쓰기 가능으로 변경

        ```
        # vi /etc/exports

        /share          192.168.100.0/24(rw)
        ```

    - 공유설정 변경 후 설정 적용

        ```
        # exportfs -r        // 변경설정 적용
        # exportfs -v        // 설정상태 확인
        ```
  1. NFS파일 공유 시 권한 관련 옵션

    • sec : 공유되는 파일의 권한 규칙

      • sys : 기본값, 각 시스템 사용자의 UID/GID를 기준으로 적용됨

      • none : 모든 사용자의 권한을 nfsnobody로 처리

        ex) /etc/exports 파일의 설정 수정

          /share          192.168.100.0/24(rw,sec=none)
      • krb5... : 통합사용자 인증 설정(IPA) - Directory Service(LDAP...)

    • root_squash : sec=sys 설정이 되어 있더라도, root계정에 대해서는 nfsnobody 권한을 사용하도록 설정

      nfsnobody 권한을 사용하도록 설정

      • ex) /etc/exports 파일의 설정 수정

          /share          192.168.100.0/24(rw,sec=sys,no_root_squash)
    • ro, rw : 읽기 전용 or 읽기/쓰기

      • 공유 시, 마운트 시 각각 ro, rw 설정 가능
        • 한쪽이라도 ro로 설정되어 있을 경우, 결과적으로 읽기만 가능

자동마운트 설정(Automount)

  • NFS 마운트 시 mount 명령어로 연결할 경우는 지속적으로 마운트가 유지

  • 자동마운트 설정 시 설정이 적용될 떄 즉시 마운트가 실행되지 않음

  • 자동마운트를 통해 연결될 위치에 접근 시, 마운트가 수행됨

  • 장기간 사용하지 않을 경우, 스스로 연결을 해제함

  • NFS 서버의 디렉토리 내 하위 디렉토리 등을 한 설정으로 마운트 되도록 할 수 있음

    ex) NFS 자동마운트를 통한 사용자 홈 디렉토리 공유

  • 자동마운트 설정 시 : 마스터 맵 - 직접/ 간접 맵

  • 마스터 맵 : 마운트 포인트, 맵 파일을 명시

    • [마운트 포인트] [맵 파일 경로]
    • /etc/auto.master.d/[파일명].autofs 형태로 생성된 파일만 적용
  • 직접 맵 : 마운트포인트에 지정된 경로를 자동마운트 설정, 마운트포인트가 절대경로

    <마운트포인트(절대경로)> <마운트옵션> <NFS공유위치>

  • 간접 맵 : 마운트포인데에 대한 정보를 상대경로로 지정, 마스터 맵에 설정된 마운트포인트에 간접맵설정에 지정된 마운트포인트를 경합하여 마운트 위치 지정

    <마운트포인트(상대경로)> <마운트옵션> <NFS공유위치>

자동마운트 실습

  • NFS 서버는 공유가 걸려있는 상태 (이전실습 상태 그대로 유지)

  • NFS 클라이언트에서 autofs 패키지를 설치

# yum search autofs
# yum install autofs
  • 직접마운트 설정

    1. 직접마운트 설정 - /etc/auto.master.d/test.autofs파일 생성

       #vi /etc/auto.master.d/test.autofs
       /-      /etc/test.direct
    2. 직접 마운트 설정이 들어있는 직접 맵 파일 생성 - /etc/test.direct 파일생성

       #vi /etc/test.direct 
       /mount/nfs      -rw,sync        192.168.100.100:/share
    3. autofs 서비스 시작/활성화

       # systemctl start autofs.service
       # systemctl enable autofs.service
  • 간접마운트 설정

    1. NFS 서버에서 공유 추가 설정

       server# mkdir -p /shares/{alpha,beta,gamma}
       server# chmod -R 777 /shares
       server# vi /etc/exports
      
       /share          192.168.100.0/24(rw,sec=sys,no_root_squash)
       /shares/alpha        192.168.100.0/24(rw)
       /shares/beta        192.168.100.0/24(rw)
       /shares/gamma        192.168.100.0/24(rw)
      
       server# exportfs -r
       server# exportfs -v
    2. 간접마운트 설정 - /etc/auto.master.d/test.autofs파일 생성

       #vi /etc/auto.master.d/test.autofs
       /mount            /etc/test.indirect
    3. 간접 맵 파일 생성 - /etc/test.indirect 파일 생성

       #vi /etc/test.indirect
       indirect        -rw,sync        192.168.100.100:/share
    4. 간접마운트로 생성된 경로 접근 후 확인

       # cd /mount
       # ls
       # cd /mount/indirect
    5. 간접 맵에서 와일드 카드 사용

      와일드 카드 : *, ?

      • 간접 마운트 설정 시 특정 경로 및 그 하위 디렉토리 포함

      • 기존 간접마운트 맵 파일 사용

      • 마운트 포인트 경로는 마스터맵 사용

        ```
        #vi /etc/test.indirect
        indirect -rw,sync 192.168.100.100:/share

      • -rw,sync 192.168.100.100:/&

    6. 설정을 적용하기 위해 서비스 재시작

       #systemctl restart autofs.service