* 개요

Cockpit은 레드햇 리눅스 서버를 웹 콘솔 기반으로 관리할 수 있도록 한다. 아래 이미지를 보자.

 

시스템 전체 오버뷰, 스토리지, 네트워크, 가상머신, 팟맨 등 여러가지 시스템을 커맨드 라인이 아닌 GUI로 쉽게 볼 수 있다.

 

상세 정보는 다음 링크를 참고한다.

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html-single/managing_systems_using_the_rhel_8_web_console/index

 

RHEL 8 웹 콘솔을 사용하여 시스템 관리 Red Hat Enterprise Linux 8 | Red Hat Customer Portal

RHEL 웹 콘솔은 업스트림 Cockpit 프로젝트를 기반으로 하는 웹 기반 그래픽 인터페이스입니다. 이를 사용하면 systemd 서비스 검사 및 제어, 스토리지 관리, 네트워크 구성, 네트워크 문제 분석, 로그

access.redhat.com

 

 

 

* 설치 방법

 

1. 설치

다음 명령어로 설치한다.

yum install cockpit cockpit-bridge cockpit-machines cockpit-system cockpit-ws selinux-policy selinux-policy-targeted

참고로 8점대 리눅스에서 cockpit은 GUI 웹 접속시 접속불가한 이슈가 있으므로 8.9를 사용하기를 권고한다.

https://access.redhat.com/solutions/7007694

 

The cockpit loging fails with "This web browser is too old to run the Web Console (missing selector(:is():where()))" - Red Hat C

Login to RHEl/RHVH cockpit interface fails with the following error even when the latest browser is installed This web browser is too old to run the Web Console (missing selector(:is():where()))"

access.redhat.com

 

2. 서비스 활성화

systemctl restart cockpit
systemctl enable cockpit

 

 

3. 접속

해당 서버의 IP:9090 으로 접속할 수 있다. 아래 주소를 보자.

존재하는 루트 유저로 로그인하면 된다.

 

 

* GUI 톺아보기

 

로그 보기

 

디스크 저장소 보기

 

네트워크 보기

 

가상머신 보기

- qemu, kvm이 설치된 경우 아래처럼 볼 수 있으며, 세팅도 가능하다. 

 

podman 보기

아래는 설치되어 있지 않기 때문에 이런식으로 나오는 것을 알 수 있다.

 

 

이 외에도 서버 계정 정보, 서비스 정보, 설치된 어플리케이션, 진단 등 여러가지를 사용할 수 있다.

 

가상머신 전체 리스트 확인 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을 선택한다.

 

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

 

* 개요

- USB 메모리로 리눅스에서 데이터를 이동할 때, 파일시스템에 따라 인식되지 않는 경우가 있다.

- 리눅스에서는 대표적으로 ext4, xfs 가 인식되며, 윈도우 NTFS, exfat 등은 인식되지 않는다.

- 인식되지 않는 파일시스템 형식을 마운트하기 위해서는 추가 패키지를 설치해야 한다.

 


* exfat 마운트를 위한 추가 패키지 설치 사전 준비사항

- 추가 패키지 설치를 위해서는 RHEL8 기준 기본 레포지토리로는 설치가 불가하다.

- 이에 추가 서드파티 레포지토리(fedora rpmfusion) 를 설치해야 하며, 인터넷도 연결이 되어야 한다. 

- 자세한 레포지토리 등록법은 아래를 참고한다.

2024.04.19 - [High Availability/Lab Environment] - RHEL8 서드파티 레포지토리 설치 (epel-release, rpmfusion)

 

RHEL8 서드파티 레포지토리 설치 (epel-release, rpmfusion)

* epel-release 레포지토리 다음 링크에 RHEL8 등 공식적으로 사용 가능한 레포지토리 링크 확인이 가능하다. https://docs.fedoraproject.org/en-US/epel/ RHEL8에서 해당 epel-release 레포지토리 설치를 위해 아래와

watch-n-learn.tistory.com

 

 

* 추가 패키지 설치 진행

- 다음 명령으로 두 패키지를 설치해야 한다.

yum install exfat-utils fuse-exfat

 

- 설치가 완료되면, 아래와 같이 lsblk로 USB 메모리를 식별하고 (/dev/sdb1) mount -t 명령으로 마운트하면 된다.

lsblk
mount -t exfat /dev/sdb1 (USB의 경로) /mnt (마운트할 경로)

+ Recent posts