본문 바로가기
Virtualization & Cloud Infra/Virtualization(VMware)

서버 가상화(Server Virtualization) - NFS(Network File System) 개요 & 추가 실습을 위한 Ubuntu에서 디스크 마운트 구성 / vSphere Topology 새로 구성 후 실습

by TwoJun 2024. 10. 4.

2024-10-02(WED)

 

 

 

(1)  금일 진행 

- Storage 구성 및 추가 작업

- NFS 이론 및 구성

- vCenter Server부터 iSCSI Storage & NFS Configuration

 

 

01. 전일 내용 - vCenter Server Inventory Configuration

01-1. Host & Cluster

(1) Data Center 생성

 

(2) 디렉터리 생성

 

 

 

01-2. Virtual Machine & Template

(1) VM Directory 생성

 

(2) Template Directory 생성

 

 

 

01-3. Storage

(1) ESXi 호스트 생성 시 - esxi-01-hdd라는 이름으로 지정해서 생성

 

 

 

01-4. Network

(1) Storage 전용 VMKernel 포트를 생성

- VMKernel : VMWare 솔루션에서 특정 작업을 수행하기 위해 설계된 전용 네트워크 인터페이스

 

 

 

 

 

02. 전일 내용 - Network Configuration

02-1. Standard Switch : ESXi 호스트에서 생성되는 Switch를 의미

(1) VM Port Group

- VM들을 연결하는 역할

 

(2) VM Kernel Port

- VMKernel이 동작하기 위한 포트, 특별한 작업 수행을 위해 포트 연결 진행

- Management, iSCSI, NFS, vMotion, HA, DRS 포트 등이 있으며 각 VMkernel 포트는 특정 기능에 최적화되어 있으며, 네트워크 성능과 보안을 고려하여 적절히 구성해야 한다.

 

(3) Up-Link Port

- NIC 포트를 의미한다. (네트워크 카드가 연결된 포트)

 

 

 

02-2. Distributed Switch

(1) 데이터 센터 내 여러 ESXi 호스트에서 네트워크 관리를 중앙 집중화할 수 있는 가상 네트워크 스위치

 

 

 

02-3. VLAN Configuration

(1) VLAN 설정 3가지

- Port Group에서 VLAN 설정

- 물리적 Switch VLAN 설정

- 서버와 ESXi 호스트에서  VLAN 설정

 

(2) Port Group에 VLAN을 설정하면 어떻게 동작하는지?

- 패킷에 VLAN Tag가 지정된다. (가상 머신 패킷이 가상 스위치를 빠져 나갈 때  지정된다.)

- 패킷에 VLAN Tag가 사라진다. (가상 머신 패킷이 가상 머신으로 복귀하면 사라진다.)

 

(3) VLAN Number : 1~4094까지 지정 가능, 4095는 모든 VLAN 허용

 

 

 

02-4. Network Policy

(1) Security

- Promiscuous mode : NIC에서 사용하는 설정으로, 해당 NIC가 수신하는 모든 패킷을 필터링 없이 처리하도록 설정할 수 있는 옵션이다. (VMware와 같은 가상화 플랫폼에서 가상 머신이 서로의 트래픽을 감시하거나 통신할 수 있도록 설정할 때 사용)

 

- MAC Address Change : NIC의 물리적 주소인 MAC 주소를 변경할 수 있는 옵션

 

- Forged Transmits : 가상 스위치에서 사용하는 설정 중 하나로, 가상 머신이 전송하는 네트워크 패킷의 출발지 MAC 주소를 변경할 수 있도록 허용하는 기능

 

 

(2) Traffic Control

- 평균 또는 최대 대역폭, 버스트 값을 설정할 수 있다.

 

 

(3) NIC Teaming

- 여러 NIC 인터페이스 카드를 하나의 논리적 인터페이스로 묶어주는 기술을 의미한다.

- 네트워크 성능 튜닝(향상), 대역폭 증가, 부하 분산 등의 장점을 가져올 수 있다.

 

 

 

02-5. Storage Configuration

(1) 스토리지 기술(Storage Technology) - Direct Connect, FC, FCoE, iSCSi, NFS, NAS

 

(2) 데이터 스토어 유형 : VMFS, NFS

 

(3) VM 전용 파일 시스템(VMFS) 생성 : 공유 스토리지에 ESXi 호스트 간 동시 접속을 허용한다. (고가용성 부하 분산 이점)

- VMFS 버전의 경우 현재 기준 VMFSv5, VMFSv6이 존재한다.

- 동적 확장이 가능한 구조를 갖는다.

 

(4) RDM(Row Disk Mapping) : VMware에서 가상 머신이 물리적 디스크에 직접 액세스할 수 있도록 해주는 기술

- 주로 SAN(Storage Area Network) 환경에서 사용된다.

 

 

(5) SCSI: iSCSI는 인터넷을 통해 SCSI 명령을 전송하는 프로토콜로, 저장 장치에 대한 원거리 액세스를 허용한다.

 

(6) 호스트 (Host): iSCSI 환경에서 호스트는 iSCSI 스토리지에 연결되는 서버 또는 컴퓨터를 의미한다. 이 호스트는 iSCSI 드라이버를 통해 스토리지와 통신한다.

 

(7) HAB (High Availability Block): 고가용성 블록 저장소를 의미한다. 즉, 시스템이나 서비스가 중단되지 않도록 여러 경로 또는 장비를 활용하는 기술이다.

 

(7) 스토리지 전용 네트워크 카드: iSCSI 트래픽을 처리하기 위해 특별히 설계된 네트워크 카드로, 데이터 전송을 최적화하고 성능 향상의 이점이 있다.

 

(8) iSCSI 드라이버: iSCSI 호스트와 스토리지 장치 간의 통신을 가능하게 해주는 소프트웨어입니다. 이 드라이버가 있어야 호스트가 iSCSI 스토리지에 접근할 수 있다.

 

(9) 스토리지 통신의 경우 TCP/IP망을 사용한다.

 

 

(10) 스토리지 (Storage): 데이터 저장을 위한 시스템 또는 장치. 일반적으로 하드 드라이브, SSD 등이 포함

 

(11) 물리적 디스크 (Physical Disk): 실제로 데이터를 저장하는 하드웨어 장치. 

 

(12) LUN (Logical Unit Number): 물리적 디스크를 논리적으로 분할한 단위. LUN은 스토리지 시스템에서 특정한 데이터 블록이나 볼륨을 식별하는 데 사용됩니다. 여러 개의 물리적 디스크를 묶어서 LUN으로 설정하면, 사용자나 애플리케이션은 이 LUN을 하나의 논리적인 디스크처럼 사용할 수 있다.

 

(13) 프로세서 (Processor): 스토리지 시스템에서 외부 요청을 받아서 디스크의 읽기 및 쓰기 작업을 수행하는 구성 요소,  이 프로세서는 데이터 요청을 처리하고, 필요한 작업을 물리적 디스크에 전달하는 역할을 한다.

 

(14) SP (Storage Processor): 스토리지 시스템에서 데이터 관리를 담당하는 프로세서. SP는 데이터 전송, 오류 처리, RAID 구성, LUN 관리 등 여러 가지 기능을 수행하며, 전체 스토리지 시스템의 성능과 효율성을 최적화하는 역할을 한다.

 

 

 

02-6. FreeNAS : 전일 작업(스토리지, ESXi 호스트가 직접적으로 통신하기 위한 과정)

(1) IMAGE 설치 - OS : 10GB, 데이터 저장용 : 300GB, Thin Provisioning Checked

 

(2) Management IPv4 설정 : 192.168.100.40

 

(3) ESXi 호스트와 연결 - IPv4 : 192.168.13.11 (실질적인 통신)

 

(4) FreeNAS 접속

- ESXi 호스트 연결 / IP Setting(Storage VMKernel 전용), 통신 MTU : 9000

 

(5) 스토리지 Pool 생성 : 물리적 디스크가 여러 개인 경우 이 부분들을 하나로 묶어서 논리적인 저장 공간을 생성하는 과정

- 여러 개의 디스크를 묶는 작업

 

(6) iSCSI 설정 : Running, Start Automatically 두 개의 상태 Enable, 디스크 볼륨 생성(vol-1:50G, vol-2:200G)

 

 

(7) ESXi 호스트 작업 : Network Setting

- ESXi 호스트 환경에서 물리적 네트워크 인터페이스를 추가한다. 이후 DCUI Console에서 Port ENABLE

 

- 가상 스위치 생성 : 통신을 위한 VMKernel 생성(iSCSI 전용), IP 할당(192.168.100.52, 192.168.100.53), MTU Size 설정 및 보안 옵션 모두 허용, 주소 할당 이후 Ping Test

 

- S/W Adapter 추가

 

- 네트워크 포트 바인딩

 

- VMKernel 포트에 연결

 

- 주소 동적 검색 : 스토리지와 직접적인 연결 작업을 수행한 것

(해당 작업까지 수행하면 FreeNAS Volume이 나타난다.)

 

- ESXi 호스트에서 인식할 수 있는 스토리지를 생성한다.(VMFS6 버전 체크, 스토리지 이름 : iSCSI-Share-01, 02)

 

 

 

 

 

 

 

1. NAS(Network Attached Storage) & NFS(Network File System) Storage Configuration

1-1. NFS 구성 요소

 

(1) NAS(Network Attached Storage)

- NAS는 파일 저장을 위한 전용 장비로, 네트워크를 통해 여러 클라이언트가 접근할 수 있도록 설계된 스토리지 시스템을 의미한다.

 

(2) NFS(Network File System)

- 네트워크를 통해 파일 시스템을 공유하고 액세스할 수 있게 해주는 프로토콜

 

(3) 이러한 NAS & NFS를 기반으로 하는 스토리지 구성의 경우 네트워크 통신을 통해 파일 저장 및 공유를 효율적으로 관리하는 시스템을 구축하는 것을 의미한다. 

 

 

 

 

1-2. NFS에서의 주소 지정

 

 

 

 

 

1-3. NFS 데이터 스토어 구성

(1) VMKernel 포트 생성 (성능 향상 목적)

 

(2) 제공할 정보

- NFS 서버 이름(또는 IP 주소)

- NFS 서버의 폴더(Ex : /LUN1, /LUN2)

- 데이터 스토어를 생성하는 호스트

- NFS 파일 시스템 읽기 전용 마운트 여부(기본값은 READ/WRITE로 마운트하는 것)

- NFS 데이터 스토어 이름

 

(3) 데이터 스토어에 액세스 할 각 ESXi 호스트에서 구성한다.

 

 

 

 

1-4. 다중 경로 및 NFS 스토리지(이중화 관점)

 

(1) NFS  다중 경로를 지정하기 위한 한 가지 권장되는 구성

 

(2) 1개의 VMKernel 포트를 구성한다.

 

(3) 동일한 물리적 스위치에 연결된 어댑터를 연결해서 NIC 티밍을 구성한다.

 

(4) 여러 IP 주소로 NFS 서버를 구성한다.

- 동일한 서브넷에 여러 IP 주소가 존재할 수 있다.

 

(5) 다중 링크를 사용하려면 IP 해시 로드 밸런싱 정책을 사용해서 NIC 그룹을 구성한다. 

 

 

 

 

 

 

2. NFS Storage Configuration LAB (vCenter Server ~ iSCSI까지 재구성)

2-1. Ubuntu 환경에서의 작업을 위한 VM 생성 / 디스크 마운트까지 진행 (방법 한 번 더 정리)

(1) 위와 같이 가상 머신을 생성한다.

 

 

(2) 운영체제 설치를 위한 디스크를 별도로 두고 나머지는 데이터를 위한 디스크를 할당한다.

 

 

(3) 가상 머신을 만들고 부팅한다.

 

 

(4) 앞서 설정한 OS 전용 하드 디스크를 선택한다.

 

 

(5) 유저 정보 / 로그온 패스워드를 지정한다.

 

 

(6) 모든 내용을 확인하면 설치가 진행된다.

 

 

(7) 설치 완료 후 재부팅한다.

 

(8) 이후 마운트 작업을 해야 하는데, 마운팅이 잘못 되면 부팅이 되지 않으니 미리 Snapshot을 생성한 상태에서 작업한다.

 

 

(10) 해당 가상 머신에 위와 같은 주소 대역을 할당한다.

- 192.168.100.39 / 255.255.255.0 / 192.168.100.1 (Default Gateway)

 

 

(11) mkdir /share 커맨드로 해당 홈 디렉터리를 기준으로 /share 디렉터리를 생성한다.

 

 

(12) 작업 편의성을 위해  sudo -su root 명령으로 관리자 권한으로 접속한다.

 

(13) 위와 같은 fdisk 명령을 기준으로 /dev/sdb 디스크를 파티션으로 생성한다.

- fdisk /dev/sdb → n → p → Enter → Enter → Enter → p

 

 

(13) 마지막은 w 버튼을 눌러 변경 사항을 저장하고 빠져나온다.

 

 

(14) ls - l /dev/sd* 명령으로 /dev/sdb에 대한 파티션 /dev/sdb1이 생성된 것을 확인할 수 있다.

 

 

(15) 생성된 파티션을 mkfs.ext4 /dev/sdb1 명령으로 포맷한다.

 

 

(16) 이후 생성된 /share를 기준으로 /dev/sdb1 파티션을 마운트한다 (mount /dev/sdb1 /share)

- 이전 리눅스, 서버 마운트 방법 포스팅에서 작성했던 cp /boot/vmlinuz~는 진행하지 않는다.

 

 

(17) 현재 포스팅에선 생략되었지만, nano /etc/fstab으로 마운트된 내역을 추가해줘야 한다. 현재는 cat 명령으로 추가한 내용을 출력해 주었다. (재부팅 이후에도 마운트 내역을 유지하기 위한 목적)

 

 

(18) 재부팅 이후에도 마운팅이 유지되는 것을 확인할 수 있다.

 

 

 

 

2-2. Ubuntu 환경에 NFS 설정 / 방화벽 비활성화

(1) apt -y install nfs-kernel-server 명령으로 NFS 옵션을 설치한다.

 

 

(2) nano /etc/exports 명령으로 에디터에 접속해서 위와 같은 텍스트를 추가한다.

- /share 192.168.100.*(rw)

 

 

(3) chmod 777 /share

- /share 디렉토리의 권한을 변경하여 모든 사용자(소유자, 그룹, 기타 사용자)가 읽기, 쓰기 및 실행 권한을 가지도록 설정한다.

 

(4) exportfs -v

- NFS에서 현재 내보내고 있는 파일 시스템 목록을 표시, 어떤 디렉토리가 공유되고 있는지, 그리고 그에 대한 옵션들을 확인한다.

 

(5) systemctl restart nfs-server

- NFS 서버 서비스를 재시작한다.

 

 

(6) systemctl status nfs-server 명령으로 서비스가 Running(Active) 활성화 상태인지 체크한다.

 

 

(7) 방화벽 설정까지 ufw disable 명령으로 Disable 처리한다.

 

 

 

 

 

 

 

 

3. vCenter Server ~ iSCSI까지 재구성 

3-1. 실습 환경 재구성 및 변경된 vSphere Topology

- vCenter : ywj-vcsa02.rapalab.local / 192.168.100.194

- SSO Domain 필요 : ywj.local

 

- ESXi Host : esxi-11.rapalab.local  / 192.168.100.151 / CPU : 4, RAM : 25GB, Disk : 50 / 650GB

 

-  ESXi Host : esxi-12.rapalab.local / 192.168.100.152 / CPU : 2, RAM : 8GB, Disk : 50 / 100GB

 

- ESXi Host : esxi-13.rapalab.local / 192.168.100.153 / CPU : 2, RAM : 8GB, Disk : 50 / 100GB

 

(1) 설치 작업 : esxi-11, esxi-12, esxi-13를 기준으로 vCenter 설치

 

(2) 스토리지 구성 : 192.168.100.140, 192.168,13.111(VMKernel과 통신)

 

(3) HDD : 300GB, iSCSI-Pool-02, vol-01 : 200GB, vol-02 : 30GB

 

(4) vCenter에 호스트 추가 작업

 

(5) Windows 10은 복제할 것이기 때문에 우선 설치하지 않는다.

 

 

 

 

3-2. 작업 이전 기존 ESXi 호스트, vCenter, IPStorage VM 종료 필요

(1) 종료 순서는 순차적(계층적)으로 종료하여 문제가 발생하지 않도록 한다.

(1) SSO 자격 증명으로 ESXi-01 호스트의 vCenter Server Applicance로 접속한다.

 

 

(2) vCenter 환경에서 나머지 호스트에 대한 전원을 종료한다.

 

 

(3) 작업 이전 물리 서버의 리소스 사용률을 줄이기 위해 이전에 사용하던 ESXi 호스트들을 종료했다.

 

 

 

 

3-3. 호스트 설치 이전 ADMaster VM으로 접속한 뒤 생성할 호스트 및 스토리지에 대한 도메인 등록 작업 필요

(1) 실습에서 추가할 호스트들에 대한 주소 정보 & 도메인 정보를 모두 등록했다.

 

(2) 아래부터는 실습을 진행하며 작업을 어떻게 진행했는지 큰 틀만 작성했다.

 

 

 

 

3-4. 작업 시작 : ESXi-11, 12, 13 호스트 가상 머신 생성 / IP, DNS, DNS Suffixes Configuration

 

 

 

 

3-5. esxi-11 기준으로 vCenter Server 설치 / 나머지 호스트(12, 13) 기준으로 ntp 서비스 활성화 / 스토리지 데이터스토어 생성 / 가상 스위치 보안 연결 활성화

 

 

 

 

3-6. ESXi-11 기준으로 vCenter Server 구성하기

(1) FQDN(Fully Qualified Domain Name)

- 특정 서버를 완전히 식별하기 위한 도메인 이름 체계를 의미한다. FQDN은 호스트 이름과 도메인 이름을 결합하여 생성할 수 있다.

 

(2) vCenter 구성요소 설치 작업이 오래 소요되므로 IPStorage 2 VM에서 FreeNAS 우선 설치

 

 

(3) IP Storage2 VM 설치 후 주소 대역 추가 (IPStorage2, vmx0)

 

 

(4) 스토리지 통신을 위해 vmx1 포트에 주소 할당(vmx1)

 

 

 

 

3-7. vcsa-02.rapalab.local로 vCenter Server 접속 후 작업

(데이터 센터 생성 & 호스트, 템플릿 별로 디렉터리 생성 & ESXi-12, 13 호스트 추가)

(1) 실습 환경 요구사항은 SSO 인증 도메인을 ywj.local로 설정했다.

 

 

 

 

3-8. ESXi-12, 13. 호스트에 대해 가상 스위치 생성 후 VMKernel 포트 활성화

(1) 작업 이전 호스트의 물리적 NIC를 추가한다.

 

(2) DCUI 에서 NIC Status를 Enable로 전환한다.

 

(3) 전환 후 vCenter Client에서 가상 스위치 추가 & vmKernel 포트 바인딩 작업을 수행한다.

 

 

 

 

3-8. FreeNAS에서 Pool 및 스토리지 볼륨 생성 작업

 

 

 

 

3-9. FreeNAS Client Console Env에서 VMKernel Binding port와 ping 테스트 수행 

 

 

 

 

3-10. iSCSI  드라이버 설치

 

 

 

 

3-11. 스토리지와의 T CP/IP 통신을 위한 Network Port Binding & IP Storage2 서버와 동적 연결 후 FreeNAS Volume 리스트 확인 

(1) 여기까지 하면 작업은 완료된다.

 

 

 

 

3-12. 각 호스트에 접속해서 추가한 iSCSI 디바이스에 대한 데이터스토어를 공유 자원으로 생성

(1) 현재 데이터 스토어가 esxi-12, 13 호스트에서 모두 확인된다.

 

(2) 서버 가상화 파트에서 지금까지 배웠던 내용들을 추가 실습으로 한 번 정리했다.

 

 

 

 

 

 

 

 

 

※ 해당 포스팅을 기준으로 내용 추가가 필요하다고 생각되면 기존 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!

댓글