가상머신 전체 리스트 확인 virsh  list --all [root@workstation ~]# virsh list --all
 Id   Name               State
-----------------------------------
 -    rhel8.3-node1      shut off
 -    rhel8.3-node2      shut off
 -    rhel8.3-node3      shut off
 -    rhel8.3-node4      shut off
 -    rhel8.3-storage    shut off
 -    rhel8.3-template   shut off
가상머신 시작 virsh start [가상머신명] [root@workstation ~]# virsh start rhel8.3-node1
Domain rhel8.3-node1 started
가상머신의 스냅샷 확인 virsh snapshot-list [가상머신명] [root@workstation ~]# virsh snapshot-list --domain rhel8.3-node1
 Name        Creation Time               State
--------------------------------------------------
 snapshot1   2023-12-12 16:47:09 +0900   shutoff
가상머신 스냅샷 복구 virsh snapshot-revert [노드명] [스냅샷명] [root@workstation ~]# virsh snapshot-revert rhel8.3-storage snapshot3
가상머신 스냅샷 만들기 virsh snapshot-create-as --domain [노드명] [스냅샷명] [root@workstation ~]# virsh snapshot-create-as --domain rhel8.3-storage snapshot3
Domain snapshot snapshot3 created
가상머신 스냅샷 삭제 virsh snapshot-delete --domain [노드명] [스냅샷명] [root@workstation ~]# virsh snapshot-delete --domain rhel8.3-node1 snapshot1
Domain snapshot snapshot1 deleted
가상머신 스냅샷 상세정보 보기 virsh snapshot-dumpxml --domain [노드명] --snapshotname [스냅샷명] virsh snapshot-dumpxml --domain rhel8.3-node1 --snapshotname snapshot1
<domainsnapshot>
  <name>snapshot1</name>
  <description>1.hostname
2.yum config
3.iso file copy
4.network setting
5./etc/hosts setting
(4,5 settijng is related with node1,2,3,4 and storage)</description>
  <state>shutoff</state>
  <creationTime>1702367229</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='vda' snapshot='internal'/>
...중략...
가상머신 xml 정보 보기 virsh dumpxml [노드명] [root@workstation ~]# virsh dumpxml rhel8.3-node1
setlocale: No such file or directory
<domain type='kvm' id='2'>
  <name>rhel8.3-node1</name>
  <uuid>81a85d57-85f9-4326-9a97-5db96e043033</uuid>
  <metadata>
   
     
    </libosinfo:libosinfo>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
...중략...
가상머신 xml 정보 수정하기 virsh edit [노드명]

* iSCSI란?

iSCSI는 IP 네트워크를 통해 SCSI 스토리지 프로토콜을 에뮬레이트 하는 TCP/IP 기반 프로토콜이다. 가상환경이나 테스트환경에서 SCSI를 사용하기 어려우므로, iSCSI를 통해 테스트용으로 사용할 수 있다. IP 기반이라 테스트를 위한 일반 PC 환경에서는 SCSI보다 훨씬 불안정하며, Production 에서 사용하기 위해서는 전용 트래픽 인프라가 필요하므로 SCSI 대신 굳이 쓰는 경우는 드물다.

 

# 용어

- Initiator : iSCSI를 받는 클라이언트

- target : iSCSI 서버로 사용되는 스토리지

 

targetcli 는 iSCSI 를 구성하는 패키지이며, 해당 패키지는 대화형 쉘 방식으로 iSCSI 를 구성하도록 되어 있다. 아래 내용에서 <서버> 부분과 <클라이언트> 부분이 나뉘어져 작업이 진행된다.

 

 

* iSCSI Server (Targetcli) 설치 및 구성

 

1. 설치

yum install targetcli

 

systemctl enable target (enable 하지 않으면, 구성해놓은 iscsi 정보가 없어질 수 있으므로 꼭 수행할 것)
systemctl restart target

 

 

2. 개요

- targetcli  -> 이후 프롬프트 변경됨

- 아래과 같이 /> 프롬프트가 나오며, ls를 치면, 현재 iSCSI 구성이 나온다.

- 현재 어떠한 내용도 없는 상태이다.

- 여기서 먼저 서버내에 구성된 디스크/파티션/LV 등을 가지고 iSCSI용 디스크를 등록한다.

- 등록된 디스크를  클라이언트에 연결할 수 있도록 IQN, ACL 등을 설정한다.

- 이후 클라이언트에서 해당 디스크에 엑세스할 수 있다.

 

 

3. targetcli 사용

경로구성은 최상위 / 밑에는 backstores, iscsi,loopback이 있고, blackstores 아래에는 block,fileio,pscsi,ramdisk가 있다. 이 경로구성에 추가로 여러가지가 생성될 수 있다. 경로 이동은 해당 프롬프트에서 backstores/block 이런식으로 입력하여 이동이 가능하다. 이전 경로로 갈 때는 .. 을 입력하여 이동한다. 아래 예시 참조

- 파란색은 처음으로 ls 를 입력하여 전체 경로 확인

- 붉은색은 /backstore/block 로 이동하여 ls를 입력하여 나온 결과

- 녹색은 /backstore/block 에서 한 칸 뒤인 /backstore로 이동하여 ls를 입력하여 나온 결과

 

 

4. iSCSI용 디스크 등록

backstores경로에는 block, fileio, pscsi, ramdisk 등의 스토리지 오브젝트가 있다. 서버에 있는 디스크를 위 4개중 일치하는 오브젝트에 등록하여 iSCSI용 디스크를 만든다. 여기서는 아래와 같이 lsblk 명령어에서 확인되는 vdb 디스크를 가지고 작업한다. (가상머신에서 추가한 디스크)

 

# 참고 : targetcli 에서 서비스하기위해 사용하는 스토리지 방식 종류

- block: 서버에 정의된 블록 디바이스(디스크, 논리 볼륨 등)를 사용한다.

- fileio: 서버에 지정된 크기의 파일을 만든다.

- pscsi: 서버에 설치된 물리적인 SCSI를 사용한다.

- ramdisk: 서버의 메모리에 램 디스크를 생성하여 사용한다. 저장된 내용은 재부팅 이후에는 존재하지 않으므로, 일시적이다.

 

- 아래와 같이 /backstores/block 까지 진입하여 create/block0 /dev/sdb 명령으로 블록장치를 생성한다.

 

- 루트로 돌아간 후, 아래와 같이 다시확인해보면 디스크가 등록된 것을 알 수 있다.

 

 

4. IQN 생성

iqn 안에 디스크, 네트워크정보, 보안정보등이 할당되며, 클라이언트는 iqn 정보로 iscsi에 연결한다. 예를들어 iqn에 디스크를 5개 할당했다면 클라이언트가 해당 iqn으로 iscsi를 연결하면 디스크 5개가 연결된다.  여기서는 iqn을 생성하고, 디스크를 연결하는 기본적인 설정만 수행하며, 보안 및 상세 네트워크 설정은 수행하지 않는다.

 

- iscsi/ 경로로 진입한 후, create 명령으로 iqn을 생성한다.

- iqn은 iqn.yyyy-mm.com.domain:option 의 형식을 따른다.

- 자유롭게 작성하면 되고, 아래 예시는 iqn.2023-12.com.example:storage1 로 설정하였다. 이 주소가 스토리지를 식별하는 unique한 주소가 된다.

 

iqn은 tpg를 가지며, tpg 밑에 acls, luns, portals 3가지 오브젝트를 가진다.

- acls(Access Control Lists) : iqn을 이용하여 클라이언트에 대한 액세스 권한을 검증하며, 등록된 lun을 매핑한다.

- luns(Logical Unit Number): iscsi에서 사용할 디스크를 정의한다.

- portals: 내보내기된  디스크에 접근하는 방법을 정의한다. IP 주소들과 포트의 쌍으로 구성되어 있다.

 

 

5. ACL 생성

acls(Access Control Lists) 은 iqn을 이용하여 클라이언트에 대한 액세스 권한을 검증한다. 이 리스트에 있는 iqn을 가진 클라이언트만 이  iqn.2023-12.com.example:storage1 에 접속할 수 있게 된다.

 

-해당 iqn의 acl까지 진입한 후 acl을 생성한다. create [iqn이름] 의 형식을 사용한다.

- 위 예시에서는 iqn.2023-12.com.example:node1 / node2 / node3 총 3개를 생성하였다.

- 클러스터 총 3개 노드에서 사용할 것이기 때문에 이렇게 작성한 것이며 이름은 형식에 맞춰 자유롭게 해도 된다.

 

 

6. LUN 할당

위에서 만들어둔 /backstores/block/block0 (/dev/vdb)를 해당 IQN에 등록한다. 등록한 LUN은 각각 ACL에 매핑된다.

 

 

7. 최종 확인

.. 명령으로 루트까지 돌아간 후, 다시 ls명령으로 전체 세팅을 확인한다.

 

 

8. 저장 및 완료

- saveconfig 명령으로 저장하고, exit로 빠져나간다.

- 빠져나갈때마다 자동으로 저장되지만, 중간중간에 세팅 저장을 할 때 saveconfig 명령을 사용한다.

 

- 저장된 config는 /etc/target/backup에 저장되며, 문제가 생기는 경우 해당 파일로 복구할 수 있다.

 

# 참고 : 리부팅 후 targetcli를 수행했을 때 설정한 데이터가 모두 삭제된 경우

- targetcli 정보는 먼저 가장 최근 정보는 /etc/target/saveconfig.json 값으로 저장된다.

- 이전 백업 정보는 /etc/target/backup에 저장된다.

- 데이터가 모두 삭제된 경우, 최근 정보 및 이전 백업 정보를 확인하여 savefile를 찾는다.

- 다음 명령어를 수행한다. targetctl restore savefile이름

- targetcli 명령으로 복구된 것을 확인한다.

 

 

이제 이렇게 생성된 iSCSI 디스크는   iqn.2023-12.com.example:node1 / node2 / node3 를 가진 iSCSI Initiator에서  iqn.2023-12.com.example:storage1  주소를 사용하여 디스크를 연결받아 사용할 수 있게 된다.

* 개요

KVM 가상머신을 쓰는 경우, KVM 물리적 서버에서 생성된 가상머신과 네트워크 통신을 할 때 보통 NAT를 사용한다. 하지만 이 NAT는 해당 KVM 가상머신 내에서만 사용하므로 외부 네트워크는 접속할 수 없다.

생성된 가상머신의 네트워크와 KVM 서버의 인터넷  IP가 들어간 포트를 를 브릿지하면 가상머신들이 KVM 물리적 서버와 같은 IP 대역으로 사용할 수 있다. 이는 사용이 매우 편리하며 마치 여러대의 서버가 있는 것처럼 사용할 수 있다.

 

 

* 현재 구성 네트워크 상태

현재 네트워크 상태는 다음과 같다.

 

np4s0은 해당 물리적 서버의 네트워크 포트(인터넷)이며,  부득이하게 캡쳐를 올린 이유는 원래 enp4s0에서 네트워크 통신을 사용했었으나 브릿지 생성을 위해 네트워크 설정을 삭제하였고 그것 때문에 콘솔에서 직접 사진을 찍었다. 네트워크 삭제는 nmcli con delete enp4s0 을 수행하면 된다. 

 

또한 virbr0~2는 KVM에서 만든 네트워크이다. 아래 참고할 것

2024.04.19 - [High Availability/Lab Environment] - RHEL8에서 KVM 가상머신 환경 및 네트워크 구성 (HA 클러스터용)

 

RHEL8에서 KVM 가상머신 환경 및 네트워크 구성 (HA 클러스터용)

1. 패키지 설치 - 다음 명령을 수행한다. (qemu-kvm은 이미 있었음) - qemu-img가 아래 캡쳐에 빠져있는데, 누락된것임.. 아래 명령대로 하면 된다. yum install qemu-kvm libvirt virt-install virt-manager libvirt-client q

watch-n-learn.tistory.com

즉 위 링크대로 진행을 완료한 후 브릿지 네트워크를 다시 생성하기 위한 것이다.

 

 

* 브릿지 작업

 

1. nmtui 실행

간단하게 브릿지 생성을 위해, nmtui 라는 간이 GUI 인터페이스를 사용한다. 커맨드 라인에서 아래를 입력한다.

nmtui

 

2. Edit a Connection 선택

 

3. 새로운 브릿지 디바이스 생성

위 캡쳐 내용대로 현재 nmcli 상에서는 virbr0,1,2 밖에 없으므로 여기서도 동일하게 나온다. 

ADD 를 선택하면 아래처럼 나오는데 브릿지를 생성할 것이므로 Bridge를 찾아 선택해준다.

 

4. 브릿지 디바이스 설정 

아래 Profile name은 nmcli 상에서 나올 이름을 입력한다. 자유롭게 선택한다.

Device는 ip a에서 실제로 나올 장치명을 입력한다. 자유롭게 선택한다.

아래 IPv4 Configuration에서는 처음에 해당 서버 IP로 사용했던 IP 정보를 그대로 적는다.

 

5. 브릿지의 슬레이브가 될 장치를 설정

이 브릿지의 슬레이브 장치가 실제 enp4s0이 된다.

그래서 해당 enp4s0을 넣어주기 위해 아래 Bridge Slaves 항목에서 ADD를 선택한다.

그리고 New Conenction 에서 Ethernet을 선택해준다.

 

여기서 Profile name은 nmcli상에서 나올 이름이며, 자유롭게 작성한다.

Device는 실제로 존재하는 enp4s0을 입력한다. 그 외 다른것은 건드리지 않고 OK를 선택한다.

 

아래와 같이 슬레이브에 enp4s0이 들어간 것이 확인된다.

오른쪽 하단의 OK를 누르면 완료되고, nmtui를 빠져나가면 된다.

 

 

6. 상태 확인

이제 해당 브릿지를 통해 통신이 가능해지며, 다시 ssh 연결을 수행하여 아래처럼 확인하였다.

virbr-enp4s0 이라는 장치에 ip가 생겼고, enp4s0은 ip가 없이 장치만으로 되어있다.

또한 nmcli con show에서도 생성한 정보대로 구성된 것을 확인할 수 있다.

 

 

7. 가상머신에서 해당 브릿지를 적용

만들어놓은 가상머신의 NIC 중하나를 선택하여 아래와 같이 Network source를 Brige device를 선택하고, Device name에는 위에서 생성한 브릿지 "장치명" 을 입력한다.

이후 저장 후에 가상머신을 켜서 네트워크 정보를 보면 다음과 같이 자동으로 IP를 가져온 것을 확인할 수 있다.

kvm 서버에서 설정한 enp4s0 네트워크 설정을 따라가므로, 인터넷이 되고 DNS까지 잘 가져오는것을 알 수 있다.

'High Availability' 카테고리의 다른 글

stickiness 이해  (0) 2024.02.17
High Availability 주요 명령어 정리  (1) 2024.02.13

1. 오른쪽 상단에 file 밑에 모니터 화면을 누른다.

2. Local install media를 선택한다.

 

3. browse를 선택한다. (해당 서버에 이미 iso 파일이 있어야 함)

 

4. 오른쪽 하단쪽에 Browse Local을 선택한다.

 

5. iso 파일을 저장해둔 경로로 가서 해당 iso 파일을 선택한다.

 

이후 아래와 같이 iso파일로 OS를 감지한다. forward를 선택한다.

 

6. CPU와 메모리를 설정한다. (최대 용량이 아래 나오므로 적절하게 선택한다)

 

 

7. 연결할 디스크를 선택한다. 여기서는 50GB 1개만 설정하였다.

 

8. 가상머신 이름 및 네트워크를 선택한다.

- 여기서는 이전에 만들어 둔 bridge device를 선택한다. bridge device 관련해서는 아래를 참고한다.

2024.04.20 - [High Availability] - [QEMU-KVM] RHEL8 에서 브릿지 네트워크 (bridge network) 만들기

 

[QEMU-KVM] RHEL8 에서 브릿지 네트워크 (bridge network) 만들기

* 개요 KVM 가상머신을 쓰는 경우, KVM 물리적 서버에서 생성된 가상머신과 네트워크 통신을 할 때 보통 NAT를 사용한다. 하지만 이 NAT는 해당 KVM 가상머신 내에서만 사용하므로 외부 네트워크는 접

watch-n-learn.tistory.com

 

- 또한 Customize configuration before install 을 체크한다. 

- 가상머신은 세팅이 완료되면 자동으로 실행되는데, 그걸 막고 추가 하드웨어 구성 메뉴로 넘어가게 한다.

- 참고로 지금까지 디스크 1개, 네트워크1개 이런식으로 구성했으나 추가 세팅에서 디스크, 네트워크 등등을 더 추가할 수 있다.

 

9. 추가 하드웨어 설정

- 다음으로 아래와 같이 화면이 나오며 여러 장치를 추가/제거할 수 있다.

- 아래와 같이 tablet 같이 명확하게 필요없는 것은 삭제한다. (사운드 등도 필요 없을 것이다)

 

- 또한 아래와 같이 CD롬에서는 ISO 파일이 등록된 것을 알 수 있다. 여기서 필요하다면 변경도 가능하다.

 

- 추가적으로 부팅 펌웨어를 BIOS로 하지 않고 UEFI로 하는 경우, 스냅샷 기능을 쓸 수 없을 수 있으므로 참고할 것.

 

- 여러가지 하드웨어 장치들이 있으나 더이상의 설명은 생략하고, 네트워크 장치를 추가한다. 아래 Add Hardware를 선택한다.

- 네트워크를 선택하면 만들어 놓은 네트워크들이 확인된다. 최초  VM생성시 만든 bridge 네트워크 외에 이전에 만들어둔 네트워크 장치를 3개 각각 더 추가한다. 

- 이전에 만들어놓은 네트워크 장치 3개 관련해서는 아래 참고한다.

2024.04.19 - [High Availability/Lab Environment] - RHEL8에서 KVM 가상머신 환경 및 네트워크 구성 (HA 클러스터용)

 

RHEL8에서 KVM 가상머신 환경 및 네트워크 구성 (HA 클러스터용)

1. 패키지 설치 - 다음 명령을 수행한다. (qemu-kvm은 이미 있었음) - qemu-img가 아래 캡쳐에 빠져있는데, 누락된것임.. 아래 명령대로 하면 된다. yum install qemu-kvm libvirt virt-install virt-manager libvirt-client q

watch-n-learn.tistory.com

 

- 아래와 같이 추가하면 되고, 다른건 건드릴 것은 없다.

 

 

10. 최종 설치 진행

- 모든 세팅이 완료되었으므 왼쪽 상단에 Begin Installation을 선택한다.

 

- 아래와 같이 가상머신이 정상적으로 실행됨을 알 수 있다.

 

1. 패키지 설치

 

- 다음 명령을 수행한다. (qemu-kvm은 이미 있었음)

- qemu-img가 아래 캡쳐에 빠져있는데, 누락된것임.. 아래 명령대로 하면 된다.

yum install qemu-kvm libvirt virt-install virt-manager libvirt-client qemu-img

 

qemu-kvm : 호스트와 게스트 가상 머신간의 통신을 가능하게 하는 package
qemu-img : 게스트 가상머신에 disk management를 제공
virt-install : 가상 머신을 생성하기 위한 virt-install command를 제공
virt-manager : 가상 computer 를 관리하기 위한 virt-manager 도구를 제공하며 graphic 도구
libvirt-client : 명령행 또는 가상화 쉘에서 가상시스템과 hypervisor 를 관리하고 제어하는 virsh command-line tool 이 포함됨.

 

- 참고로, 위 yum 명령을 수행하기 위해 레포지토리 등을 구성해야 하나, 이 부분은 여기서 설명하지 않는다.

 

 

2. 데몬 활성화 및 상태 확인

- 다음 명령을 수행한다.

systemctl enable libvirtd
systemctl start libvirtd

 

- 아래와 같이 validate 명령을 수행한다.

virt-host-validate

 

3. GUI에서 가상머신 구성 실행

- 다음 명령을 수행한다.

virt-manager

 

- 여기서 해당 ssh 프로그램은 mobaxterm 인데, 서버의 GUI 화면도 위와 같이 불러올 수 있다. (굉장히 편리하다)

- 해당 프로그램은 무료에 포터블버전도 있으므로 사용해보길 권한다. (FTP도 쉽게 가능)

https://mobaxterm.mobatek.net/download.html

 

MobaXterm free Xserver and tabbed SSH client for Windows

The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!

mobaxterm.mobatek.net

 

- 이 virt-manaver는 우리가 많이 사용하는 virtual box 또는 vmware workstation과 같은 형식의 프로그램이다.

- 사용법도 거의 비슷하므로 이전에 가상머신 프로그램을 써본 사람이라면 쉽게 사용할 수 있다.

4. 가상머신 네트워크 구성

 

# 네트워크 장치 확인

- virt-manager에서 가상머신 네트워크를 구성하기 전에, 미리 아래 ip a 명령어 결과를 봐두자.

- lo는 모든 서버에 있는 서버 자신을 가리키는 루프백이다. 

- enp4s0 은 이 물리적 서버가 가지고 있는 NIC 포트 하나를 의미한다. 포트는 단 하나만 확인된다.

- virbr0 은 GUI로 RHEL8 설치시 자동으로 설치되는 가상브릿지이며 무시해도 무방하다.

 

 

# 구축 시작

- 아래와 같이 QEMU/KVM을 오른클릭 후 Details 를 선택한다.

- 이후 Virtual Network를 선택하면 아래와 같이 default 네트워크가 확인된다.

- 이게 위에서 얘기했던 virbr0 가상브릿지이며, 쓸일이 없으므로 오른쪽 하단 붉은 동그라미를 눌러서 중지시킨 후 오른쪽 붉은원안에 x표를 눌러 삭제한다.

 

- 왼쪽 하단 파란색 더하기를 누르면 아래와 같이 새로운 가상 브릿지를 생성한다. 

- 클러스터에서는 최소 아래 4가지 네트워크가 필요하다.

 

   - 퍼블릭 네트워크 (실제 접속 및 서비스용)

   - Heartbeat 네트워크 (클러스터간 Heartbeat 통신)

   - 스토리지 네트워크 (1/2)

   - 스토리지 네트워크 (2/2)  -> 스토리지는 최소 2개의 경로가 있어야 하기 때문 (multipath 사용)

- 퍼블릭 네트워크는 브릿지를 통해 만들 것이며, 조금 복잡하므로 아래를 참고한다.

2024.04.20 - [High Availability] - [QEMU-KVM] RHEL8 에서 브릿지 네트워크 (bridge network) 만들기

 

[QEMU-KVM] RHEL8 에서 브릿지 네트워크 (bridge network) 만들기

* 개요 KVM 가상머신을 쓰는 경우, KVM 물리적 서버에서 생성된 가상머신과 네트워크 통신을 할 때 보통 NAT를 사용한다. 하지만 이 NAT는 해당 KVM 가상머신 내에서만 사용하므로 외부 네트워크는 접

watch-n-learn.tistory.com

 

- Heartbeat은 아래와 같이 만든다.

 

- NW-STG-PATH-1 은 캡쳐를 깜빡했는데 아래와 동일하고 아이피 대역만 10.10.2.0 이다.

 

- 최종적으로 아래와 같이 구성된다.

- 이렇게 3개의 가상네트워크가 구성되면, 아래 ip a 명령어도 동일하게 가상 브릿지가 생성된다.

- IP대역도 맞는것을 알 수 있다. 이렇게 되면 이 브릿지를 스위치처럼 생각하면 된다.

 

* 가상머신 선택

가상머신은 Virtual Box나 VMware Workstation 보다, 리눅스OS 위에 올라가는 KVM 구성을 권장한다. KVM으로 구성하면 대부분의 Fence를 사용할 수 있다. KVM 서버 구축은 여기서 다루지 않는다.

 

 

* 개요

High Availability Cluster 구성을 위해서는 4개의 가상머신(노드)를 생성해야 한다.

 

node1 / node2 / node3 / iscsi-stroage

 

node1~3은 클러스터 노드가 되며, iscsi-storage는 공유디스크를 위한 스토리지가 된다. 클러스터 노드, 스토리지 각각 설정이 다르다.

 

 

* 전체 기본 서버 세팅

 - VM에서 TEMPLATE용 VM을 만든다. (예를들어 RHCS8-RHEL8.6-template 이런식으로)

- 아래 세팅을 먼저 수행해둔다.

 

1. /etc/hosts setting

 

vi /etc/hosts


### External (Service) Network ###
###192.168.1.193 node1.service
###192.168.1.118 node2.service
###192.168.1.102 node3.service
###192.168.1.109 storage.service

### hb network ###
10.10.1.11 node1.example.com
10.10.1.12 node2.example.com
10.10.1.13 node3.example.com

### storage networks ###
10.10.2.11 node1.storage.patha.com
10.10.2.12 node2.storage.patha.com
10.10.2.13 node3.storage.patha.com
10.10.2.100 storage.patha.com

10.10.3.11 node1.storage.pathb.com
10.10.3.12 node2.storage.pathb.com
10.10.3.13 node3.storage.pathb.com
10.10.3.100 storage.pathb.com

 

 

2. Default firewalld setting

- 방화벽 자동시작 세팅

 

 

3.. yum config 및 iso 파일 준비

- Base, High Availability, Resilient Storage 3가지 iso를 각 노드에 /iso에 복사

- /mnt 에 마운트포인트인 /mnt/base , /mnt/ha, /mnt/rs 3가지 생성

- 위 정보를 가지고 yum repository 구성

- etc/rc.d/rc.local 에 아래 자동 실행하도록 세팅 후 chmod +x /etc/rc.d/rc.local 명령 실행

     - mount -o loop /iso/rhel-8.3-x86_64-dvd.iso /mnt/base

     - mount -o loop /iso/rhel-8.3-x86_64-dvd-ha.iso /mnt/ha

     - mount -o loop /iso/rhel-8.3-x86_64-dvd-rs.iso /mnt/rs

 

 

- 작업해둔 template 파일을 아래와 같이 4개의 VM으로 클론을 만들면 된다.

 

 

* node 구성

클러스터 노드 역할을 하는 서버 구성이다. 클론으로 만든 node1,2,3 3개 가상머신에 대해 각각 아래 세팅을 수행한다.

 

1. 퍼블릭 네트워크 설정 진행, SSH 연결 수행

- 해당 서버는 아래와 같이 4개의 네트워크가 필요하다.

     - 외부 연결 (서비스)네트워크 1개

     - Heartbeat 네트워크 1개

     - 스토리지 네트워크 2개

- 우선 가상머신의 서비스와 외부 연결을 위한 네트워크 설정을 각각 콘솔에서 수행한다. 다 되면 이후에는 ssh로 연결할 수 있다.

 

2. network setting

- 아래 남은 3개의 네트워크를 구성한다.

    - Heartbeat 네트워크 1개

    - 스토리지 네트워크 2개

 

네트워크 구성시 예를 들어, 이런식으로 현재 있는 네트워크 정보들을 삭제하고

nmcli con del enp0s2

 nmcli con del enp0s3

 nmcli con del enp0s4

 

이런식으로 새로 등록한다.

nmcli con add con-name "enp2s0" ifname enp2s0 autoconnect yes type ethernet ip4 10.10.1.11/24 gw4 10.10.1.1

nmcli con add con-name "enp3s0" ifname enp3s0 autoconnect yes type ethernet ip4 10.10.2.11/24 gw4 10.10.2.1

nmcli con add con-name "enp4s0" ifname enp4s0 autoconnect yes type ethernet ip4 10.10.3.11/24 gw4 10.10.3.1

 

3. hostname

- 원하는 호스트명을 설정한다. EX436 시험에서는 이런 식의 호스트명을 사용한다. node1.example.com 

 

 

* storage 구성

iscsi 스토리지 역할을 하는 서버 구성이다.

 

1. 퍼블릭 네트워크 설정 진행, SSH 연결 수행

- 해당 서버는 아래와 같이 3개의 네트워크가 필요하다.

     - 외부 연결 (서비스)네트워크 1개

     - 스토리지 네트워크 2개

- 우선 가상머신의 서비스와 외부 연결을 위한 네트워크 설정을 각각 콘솔에서 수행한다. 다 되면 이후에는 ssh로 연결할 수 있다.

 

2. network setting

- 아래 남은 2개의 네트워크를 구성한다.

    - 스토리지 네트워크 2개

 

네트워크 구성시 예를 들어, 이런식으로 현재 있는 네트워크 정보들을 삭제하고

 nmcli con del enp4s0

 nmcli con del enp5s0

 

이런식으로 새로 등록한다.

nmcli con add con-name "enp4s0" ifname enp4s0 autoconnect yes type ethernet ip4 10.10.2.100/24 gw4 10.10.2.1
nmcli con add con-name "enp5s0" ifname enp5s0 autoconnect yes type ethernet ip4 10.10.3.100/24 gw4 10.10.3.1

 

3. hostname

- 원하는 호스트명을 설정한다. EX436 시험에서는 이런 식의 호스트명을 사용한다.  storage.example.com 

 

4. 추가 방화벽 작업

- firewall-cmd --permanent --add-port=3260/tcp 명령 실행 후 firewall-cmd --reload 실행

 

5. 가상머신에서  1GB 디스크 한개 추가

- 가상머신 프로그램단에서 수행한다.  해당 가상머신 장치 수정에서 디스크를 추가하면 된다.

- 디스크는 원하는 용량대로 원하는 개수만큼 설정하면 된다. 여기서는 5기가 1개를 추가하였다.

 

6. targetcli 설정 (자세한 구성은 설명하지 않는다)

- install targetcli

- setting 1G LUN * 1EA

- 아래 정보대로 정보를 구성한다. 해당 서버들만 iscsi 서버에 연결할 수 있다.

iqn.2023-12.com.example:node1

iqn.2023-12.com.example:node2

iqn.2023-12.com.example:node3

 

 

6번 부분은 아래를 참고한다.

2024.04.21 - [High Availability/Lab Environment] - iSCSI (targetcli) 구성

 

iSCSI (targetcli) 구성

* iSCSI란? - iSCSI는 IP 네트워크를 통해 SCSI 스토리지 프로토콜을 에뮬레이트 하는 TCP/IP 기반 프로토콜이다. - 가상환경이나 테스트환경에서 SCSI를 사용하기 어려우므로, iSCSI를 통해 테스트용으로

watch-n-learn.tistory.com

 

+ Recent posts