NFS(Network File System)
$ yum install nfs-utils$ systemctl start nfs-server.service$ systemctl enable nfs-server.service$ firewall-cmd --add-service=nfs$ firewall-cmd --add-service=nfs --permanentNFS로 디렉터리 내보내기 구성(공유)
1. NFS로 내보내기 할 디렉터리 생성
$ mkdir DIRECTORY
1-2. 권한부여
$ chmod 777 DIRECTORY
2. 디렉터리 내보내기 구성파일(/etc/exports) 작성
$ vim /etc/exports
3. NFS로 내보내기 구성 파일 변경사항 반영
$ exportfs -r
etc/exports 구성파일 작성 방법

| DIRECTORY | ACESS_HOST(EXPORT_OPTION) |
|---|
DIRECTORY : 내보내기할 디렉터리 경로
ACCESS_HOST : 해당 디렉터리에 접근 가능한 대상 호스트 지정.
* - 모든 Host
192.168.10.0/24 - 192.168.10.0/24 네트워크의 Host
*.example.com - example.com 도메인의 Host
EXPORT_OPTION : 내보내기 할 옵션 지정
ro - Read Only
rw - Read Write
sync - 동기식 쓰기
sec - 보안 인증 방식 정의
root_squash - 원격 Host의 root 사용자의 권한 제한.
no_root_squash - 원격 Host의 root 사용자의 권한 제한하지 않음.
none - 인증없음
sys - Unix/Linux Local 사용자 인증
krb5 - Kerberos를 통한 인증. Keytab 파일 사용
krb5i - kerberos를 통한 인증. Keytab 파일 사용 + 무결성
krb5p - Kerberos를 통한 인증. Keytab 파일 사용 + 무결성 검증 + 암호화
클라이언트에서 마운트하려고 하니까 에러가 난다. 서버와 마찬가지로 nfs-utils를 설치해준다.
$ yum install nfs-utils
Mount Point 준비
$mkdir MOUNT_POINT
마운트 명령어로 마운트(일회성 마운트)
$ mount -t nfs -o rw NFS_SERVER:/NFS/DIR MOUNT-POINT

서버 (가상머신1)

클라이언트 (가상머신2)

$ vim /etc/fstab| NFS_SERVER:/NFS/DIR | MOUNT_POINT | nfs | rw | 0 | 0 |
|---|


root_squash가 설정되어있으면 클라이언트 root사용자가 파일을 만들면 server에서 소유자와 소유그룹이 nobody로 나옴.
no_root_squahs면 클라이언트 root사용자가 파일을만들면 똑같이 root로 나옴.
마운트 연결이 필요한 경우 마운트 연결을 해주고 사용하지 않을 때 마운트 연결을 해제하는 서비스.
autofs는 클라이언트에서 작동하는 서비스로 autofs를 위한 서버의 추가적인 설정은 필요 없음.
autofs로 마운트 관리하는 대상에 따라 세부적인 구성방법에 차이가 있을 수 있음.
autofs 구성 파일
autofs 마운트 구성 방식
$yum install autofs$yum install nfs-utils$vim /etc/auto.master.d/MASTER_MAP_FILE.autofs MP MAP_FILE_PATH
/- /etc/auto.direct <- 1:1 직접 매핑
/mnt2 /etc/auto.indirect <- 1:1 간접 매핑
/mnt3 /etc/auto.indirect_wildcard <- 와일드카드 간접 매핑



3. 매핑 작성
$vim /etc/auto.MAP_FILE
MP MOUNT_OPTION SOURCE_LOCATION
/mnt/test-direct -rw 192.168.56.101:/test <- 1:1 직접매핑
indirect -rw,sync 192.168.56.101:/test2 <- 1:1 간접매핑
* -rw,sync 192.168.56.101:/share-dir/& <- 와일드카드 간접매핑



3-1. (직접 매핑의 경우에만)마운트 포인트 생성
$ mkdir MOUNT_POINT
4. autofs 서비스 시작
$ systemctl start autofs.service
5. autoofs 서비스 부팅시 자동으로 시작 설정(영구 설정)
$ systemctl enable autofs.service
iSCSI(Internet Small Computer System Interface)
Storage
타겟(Target) : 스토리지 장비를 제공하는 시스템으로 서버 역할을 수행하는 시스템.
초기자(Initiator) : 스토리지 장비를 제공받는 시스템으로 클라이언트 역할을 수행하는 시스템.
IQN(iSCSI Qualified Name) : iSCSI Target, Initiator에서 사용하는 이름 ex)iqn.YYYY-mm.com.example:NAME
TPG(Target Portal Group) : 대상 포털 그룹으로 ACL, LUN, Portal을 묶은 Target의설정 단위
ACL(Access Control List) : 접근 제어 목록으로 iSCSI Target에 접근할 수 있는 시스템을 지정.
Portal : Initiator가 Target에 접속하기 위한 IP 주소, Port 등을 설정.
LUN(Logical Unit Number) : Initiator에게 제공할 스토리지 장치에 부여되는 장치 번호

backstores - iSCSI Target 시스템에서 저장공간을 제공하는 방식 정의
-block : 블록장치(Block Device)
-fileio : 현재 시스템에서 사용되는 파일시스템의 일부를 제공하는 방식으로 사이즈 지정시 별도의 파일이 생성되며 해당 파일 안에 데이터가 저장됨.
-pscsi : SCSI 장치를 직접 공유
-ramdisk : 시스템의 메모리에 램디스크(RAM Disk)를 생성해서 저장하는 방식으로 빠른 성능을 제공하나 대상(Target) 시스템 재부팅시 데이터가 손실 됨.
iSCSI 서비스
iSCSI 서비스 패키지 설치
$ yum install targetcli
iSCSI 서비스 시작
$ systemctl start target.service
iSCSI 서비스 부팅시 자동 시작 (영구 설정)
$ systemctl enable target.service
방화벽에서 iSCSI 서비스 포트 허용
$ firewall-cmd --add-port=3260/tcp
$ firewall-cmd --add-port=3260/tcp --permanent
iSCSI 타겟 구성
$targetcli
1. 타겟에 제공할 스토리지
\> /backstores/block create name=STORAGE_NAME dev=DEVICE_FILE
ex)
\> /backstores/block create name=disk1 dev=/dev/sdb
2. 타겟의 IQN 정의 및 TPG 생성
\> /iscsi create wwn=IQN_NAME
ex)
\> /iscsi create wwn=iqn.2024-05.com.example:servera

3. TPG의 ACL 설정
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/acls create wwn=INITIATOR_IQN
ex)
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/acls create wwn=iqn.2024-05.com.example:host2
4. TPG의 LUN 설정
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/luns create storage_object=BACKSTORE
ex)
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/luns create storage_object=/backstores/block/disk1

5. TPG의 Portal 설정
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/portals delete 0.0.0.0 3260
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/portals create TARGET_IP PORT
ex)
/> /iscsi/iqn.2024-05.com.example:servera/tpg1/portals create 192.168.56.101 3260

6. 설정 후 저장.

iSCSI Initiator 구성
1. iSCSI Initiator 패키지 설치
$ yum install iscsi-initiator-utils
2. iSCSI Initiator IQN 설정
$ vim/etc/iscsi/initiatorname.iscsi

$ systemctl start iscsi.service$ systemctl enable iscsi.service
iSCSI 타겟 연결
1. iSCSI 타겟 검색(Discovery)
$ iscsiadm -m discovery -t sendtargets -p TARGET_IP[:PORT]

2. iSCSI 타겟 로그인
$ iscsiadm -m node -T TARGET_IQN -p TARGET_IP[:PORT] -l

2-1. 로그인 상세 정보
$iscsiadm -m session -P 3
$ iscsiadm -m node -T TARGET_IQN -p TARGET_IP[:PORT] -u
$ iscsiadm -m node -T TARGET_IQN -o delete$ iscsiadm -m node -T iqn.2024-05.com.example:servera -o delete[root@host2 ~]# fdisk /dev/sdg ^C
[root@host2 ~]# mkfs -t ext4 /dev/sdg1
[root@host2 ~]# mkdir /mnt/iscsi-disk1
[root@host2 ~]# mount -t ext4 /dev/sdg1 /mnt/iscsi-disk

Mount 명령어를 사용한 마운트(1회성 마운트)
# mount -t FSTYPE DEVICE MOUNT_POINT
/etc/fstab 파일을 사용한 영구 마운트 설정
# vim /etc/fstab

$ systemctl stop target.service