용어 | 설명 | 예시 |
Operating System (OS) | 운영체제. 물리적 자원을 할당하도록 디자인된 소프트웨어 | Windows, Linux .. etc |
Application | OS / Guest 위에서 실행되고 물리적 자원을 소비하는 소프트웨어 | Office, Chrome .. Etc |
Virtual Machine (VM) | 가상머신. 물리적 자원을 소프트웨어로 추상화한 특별한 응용프로그램. | |
Guest | VM에서 실행되는 OS. Guest OS 라고도 한다. | Windows, Linux .. etc |
Hypervisor | VM을 실행하도록 특화된 OS 물리적인 서버 자원을 가상화시키는 Layer 하드웨어 자원을 VM들이 쓸 수 있도록 가상화시키는 역할 |
Hyper-V (윈도우) ESXi (VMWare) Xen (시트릭스) Qemu (리눅스) |
Host | Hypervisor가 설치되는 하드웨어 | Server, PC, Rasp .. Etc |
Category
- 용어 2023.03.27
- 가상화 기본 개념 2023.03.23
- ESXi 설치 및 기본구성 (예시 : ESXi 7.0.3) 2023.03.18
- vSphere ESXi 기본개념과 기능 2023.03.17
- VMware에서 사용하는 인터페이스 종류 2023.03.17
- [Troubleshooting] 사이트 데이터를 가져오지 못할 때 2022.01.27 5
용어
가상화 기본 개념
* 가상화란?
- 물리적 장치를 소프트웨어 기반의 표현으로 생성하는 절차
- 가상화를 사용해 여러 워크로드를 단일 컴퓨터에서 가상머신으로 통합하고 실행할 수 있음.
* 가상화의 기본 개념
- 기존 아키텍쳐는 운영체제가 설치된 하드웨어와 직접 상호작용한다.
- 가상화는 하이퍼바이저(또는 가상화 계층)라는 얇은 소프트웨어 계층을 통해 설치된 하드웨어와 상호작용한다.
- 하이퍼바이저는 가상머신을 만들고, 거기에 물리적 하드웨어 자원을 동적으로 제공한다.
- 하이퍼바이저를 통해 VM은 기본 물리적 하드웨어로부터 어느정도 독립적으로 운영 가능하다.
- 가상화는 자원의 효과적인 사용으로 비용감소 / 업무 효율성과 민첩성 증가의 이점을 가진다.
* VMware 가상화 종류 4가지
(ESXi 위에 NSX,VSAN,Horizon 이 올라가게 됨)
- Server 가상화 : vSphere ESXi
- Network 가상화 : NSX-T
- Storage 가상화 : VSAN
- Desktop 가상화 : Horizon
* CPU 가상화
# 물리적 환경
- 해당 물리적 장비에 올라간 OS가 해당 장비 안에 모든 CPU에 대한 소유권을 가짐
# 가상화 환경
- CPU 가상화는 성능에 초점을 맞추며, 또한 사용 가능한 CPU에서 직접 실행된다.
- 가상화 계층은 VM이 물리적 시스템에서 직접 실행되는것처럼 작동해야 할 때만 instruction을 실행함.
- CPU 가상화는 에뮬레이션이 아니다. 에뮬레이션은 이식성을 제공하나 성능에는 부정적인 영향을 미칠 수 있음.
(이식성 Portablity) : 에뮬레이션은 프로그램을 만든 시스템이 아닌 다른 시스템에도 실행할 수 있는 것)
- 지원되는 게스트 운영 체제는 x64 프로세서용으로 설계되었기 때문에 CPU 가상화는 에뮬레이션이 아님.
- 하이퍼바이저를 사용하면, Guest OS는 실제 물리적 X86 CPU에 native하게 실행될 수 있음.
* Memory 가상화
# 물리적 환경
- 해당 물리적 장비에 올라간 OS가 해당 장비 안에 모든 Memory에 대한 소유권을 가짐
# 가상화 환경
- Memory 가상화는 성능에 초점을 맞추며, 또한 사용 가능한 Memory에서 직접 실행된다.
# 하이퍼바이저의 가상 메모리 사용
- 가상 메모리는 대부분의 범용 운영 체제에서 사용되는 수십 년 된 기술이다.
- 응용 프로그램이 시작되면 운영 체제에서 제공하는 인터페이스를 사용해 실행 중에 가상 메모리 페이지를 할당/해제한다.
- 운영 체제는 가상 메모리를 사용하여 물리적으로 액세스할 수 있는 것보다 더 많은 메모리를 응용 프로그램에 제공한다.
- 거의 모든 최신 프로세서는 가상 메모리를 지원하는 하드웨어를 가진다.
- 운영체제의 가상 메모리는 애플리케이션을 위한 균일한 가상 주소 공간을 생성한다.
- 운영 체제와 하드웨어를 통해 가상 메모리는 가상 주소 공간과 물리적 주소 공간 간의 주소 변환을 처리할 수 있다.
- 이 기술은 현대 컴퓨터 시스템에서 대규모 주소 공간, 프로세스 보호, 파일 매핑 및 스와핑을 지원하도록 실행 환경을 조정한다.
- 가상화 환경에서 VMware 가상화 계층은 시작되는 VM에 대해 주소 지정 가능한 연속 메모리 공간을 생성한다.
- 할당된 메모리 공간은 VM 생성 시 설정되며 가상 주소 공간과 동일한 속성을 갖는다.
- 이 구성을 통해 하이퍼바이저는 여러 가상머신들을 동시에 실행할 수 있으며 각 VM의 메모리를 다른 VM이 액세스하지 못하도록 보호할 수 있다.
* 저장소 가상화 / 네트워크 가상화
- 내용이 길고 복잡하여 이후에 따로 설명
* GPU 가상화
# 개념
- VM은 고성능 계산 작업을 위해 물리적 호스트의 GPU를 사용할 수 있다.
- GPU는 복잡한 그래픽 작업에 사용된다. GPU에서 이러한 작업은 CPU에 과부하를 주지 않고 고성능으로 수행된다.
- 1개의 VM에 최대 4개의 vGPU를 구성할 수 있다.
- VMWARE는 NVIDIA, AMD GPU 지원, 자세한 것은 호환성 매트릭스 확인 필요
# 가상 GPU 사용 사례
가상 GPU는 다음과 같은 사용 사례에 대해 VM에 추가할 수 있습니다:
- 2D 및 3D 그래픽 작업
- VMware Horizon 가상 데스크톱
- 그래픽 집약적 애플리케이션 (건축가, 엔지니어등이 사용하는 애플리케이션 같은..)
- 대규모 병렬 작업 애플리케이션 (과학 계산 등)
# 참고 : vSphere 7 Bitfusion
- 하드웨어를 가속화하기 위한 feature이다.
- Bitfusion은 서로 연결된 서버 사이에서 특정 물리적 리소스를 분리하는 소프트웨어 플랫폼을 제공한다.
- 예를 들어, 이 플랫폼은 GPU를 서버별로 가진 리소스가 아니라, 네트워크를 통해 GPU에 엑세스 할 수 있는 리소스 풀로 만들어 공유할 수 있다.
- 즉 Bitfusion은 vSphere가 CPU를 공유하는 방식과 유사한 방식으로 GPU를 공유하여 효율적으로 사용할 수 있게 함. (GPU 공유를 위한 목적임)
- GPU 리소스를 풀로 생성하여 여러 워크로드에 대한 탄력적인 인프라를 제공
- 또한 플랫폼을 확장하여 FPGA 및 ASIC과 같은 다른 가속기를 지원할 수 있음.
- 관련 문서 : https://docs.vmware.com/kr/VMware-vSphere-Bitfusion/index.html
# Bitfusion 사용 사례
- 복잡한 애니메이션 및 3D 그래픽 렌더링과 같은 엔터테인먼트 및 시각화
- 자율 주행 차량 및 스마트 시티 프로젝트와 같은 교통 및 정부 분야
- 제조 및 배송 (예: 공장 워크플로우 및 공급망 물류 최적화)
- 감염병 및 역학(예: 백신 연구 및 바이러스 확산 방식 모델링)
- 강의실 안팎의 연구를 위한 GPU 리소스 할당과 같은 고등 교육 분야
- 재고 관리, 구매자 행동 분석, 사기 탐지 지원 등 소매업
- 일상적이거나 위험한 작업 수행을 위한 모델 생성 등 로보틱스
- 리스크 분석 등 금융 서비스
* 기타 가상 디바이스
CD/DVD 드라이브 | CD, DVD 또는 ISO 이미지 연결 |
USB 3.0 및 3.1 | 호스트 연결 및 클라이언트 연결 기기에서 지원 |
플로피 드라이브 | 플로피 드라이브 또는 플로피 이미지에 VM을 연결하는 데 사용 |
일반 SCSI 디바이스 | VM을 추가 SCSI 어댑터에 연결할 수 있음. |
교재 참조 페이지 : 2-22~27 / 3-27, 3-28
'VMWare > Virtualization & Virtual Machine' 카테고리의 다른 글
VM의 파일 정보 (0) | 2023.03.27 |
---|---|
VM (Virtual Machine) 기본개념 (0) | 2023.03.27 |
ESXi 설치 및 기본구성 (예시 : ESXi 7.0.3)
- ESXi 는 물리적 서버에 설치되며, ISO파일로 된 미디어로 설치한다.
- 서버에 미디어를 탑재하고 부팅하면 아래와 같이 설치 화면이 나오며, 설치가 시작된다.
[Phase 1 : 기본 설치]
1. Welcome
- 기본화면이다. Enter로 진행
2. 설치될 저장소 선택
- 아래 예시에서는 3개의 디스크가 확인된다.
- 이 예시는 VMware Workstation 에서 만든 VM에서 ESXi를 구축하는 것임
- 실제로 물리적 서버를 사용하는경우 VMware Virtual S 부분에 디스크 벤더 정보가 나올 것이다.
- 3개중 원하는 디스크를 선택한다.
4. 언어 선택
- Default로 설치하자.
5. Root Password 설정
- ESXi 의 Root Password 이다.
- root는 ESXi의 관리자 ID 이다.
6. 뭔가 문제가 있는 경우
- 뭔가 문제가 있을때 아래와 같이 Warning이 발생한다.
- 아래의 경우에는 물리적 서버가 아닌 가상머신에서 설치했기 때문으로 추정된다.
7. 최종 설치 확인 및 설치 진행
- F11로 설치 진행한다.
8. 설치 완료
- 아래와 같이 설치가 완료되면 Reboot를 수행한다.
[Phase 2 : 구성]
참고 : DCUI (Direct Console User Interface) 란?
- 리부팅 후에는 아래와 비슷한 화면이 첫 화면으로 나온다.
- DCUI 는 키보드만 사용 가능하며, 텍스트 기반 사용자 인터페이스이다.
- DCUI를 통해 ESXi 호스트의 기본설정들을 구성할 수 있다. 주로 초기 기본 구성에서 사용된다.
- 아래의 중간부분에 주소들은 VMware Host Client에 접속할 수 있는 주소이다.
- 설정 구성을 하려면 F2를 눌러 시작한다. Root 비밀번호를 입력해야 한다.
1. Root 접근 설정
- 루트 암호 설정 (복잡한 암호만 가능)
- Lockdown Mode 활성화/비활성화
2. Management Network 구성
- 기본적으로 ESXi 호스트에는 DHCP 주소 할당이 구성되며, IP 설정을 따로 해야한다.
- Management Network의 IP/서브넷/게이트웨이/DNS 구성 (IPV4)
- ESXi 호스트 명 설정
- VLAN 설정 구성
- IPV6 구성
- 사용자 지정 DNS 접미사 설정
- Management Network 재시작
- Management Network Ping/DNS 통신 테스트
- Management Network 비활성화
3. 기타 설정
- 키보드 레이아웃 설정 (기본 레이아웃은 US,English)
- Troubleshooting Option (기본적으로 Disable 되어있음)
- vSphere ESXi Shell: 로컬에서 문제를 해결할 때 사용
- SSH: SSH 클라이언트(예: PuTTY)를 사용하여 원격으로 문제를 해결할 때 사용
- Management Agent 재시작
- System Log : 시스템에 발생한 로그 확인
- View Support Information : VMware 기술 지원팀과 협력할 때 사용
- Reset System Configuration (시스템 구성 디폴트 초기화, 호스트에 추가한 사용자 지정 확장 또는 패키지들은 제거됨)
- 설정 변경시 아래와 같이 빨간줄 표시한 부분이 활성화된것임. 아래는 Enable 된 것임.
4. 완료
- 모든 작업이 완료되면, 아래 왼쪽 가운데의 IP로 VMware Host Client에 접속 가능하다.
'VMWare > ESXi' 카테고리의 다른 글
vSphere ESXi 기본개념과 기능 (0) | 2023.03.17 |
---|
vSphere ESXi 기본개념과 기능
* ESXi란?
- 하이퍼바이저이며 커널의 이름.
- vSphere와 함께 구매하거나 또는 무료로 다운로드할 수 있음.
- 무료버전의 ESXi는 vSphere Hypervisor라고 함
- vSphere는 ESXi와 vCenter가 합쳐진 VMware의 서버 가상화 "제품"의 이름이다.
* ESXi 설치 특징
- 작은 설치 공간 사용
- 여러가지 설치 공간에 설치 가능 (HDD, SAN LUN, SSD, USB장치, SD카드, SATADOM, Diskless Host 등)
- vSphere Auto Deploy를 사용하여 디스크가 없는 호스트(메모리에 직접)에도 ESXi를 설치 가능
* ESXi 기능
# 호스트 기반 방화벽
- 관리 인터페이스를 통한 공격의 위험을 최소화하기 위해 ESXi에는 관리 인터페이스와 네트워크 사이에 방화벽이 포함된다.
# Memory Hardening
- ESXi 커널, 사용자 모드 애플리케이션 및 실행 가능한 구성 요소(예: 드라이버 및 라이브러리)가 예측할 수 없는 임의의 메모리 주소에 위치하는 기능.
- Memory Hardening은 CPU가 제공하는 비실행 메모리 보호기능과 결합하여 악성코드가 취약점을 악용하기 위해 메모리 익스플로잇을 사용하는것을 어렵게 한다.
# 커널 모듈 무결성
- 디지털 서명은 VM커널이 로드할 때 모듈, 드라이버, 애플리케이션의 무결성과 신뢰성을 보장한다.
# Trusted Platform Module 2.0
- TPM은 신뢰할 수 있는 플랫폼을 생성하는 하드웨어 요소이다.
- 이 요소는 부팅 프로세스 및 로드된 모든 드라이버가 정품임을 확인한다.
# UEFI 보안 부팅
- 이 기능은 VMware Infrastructure Bundles (VIB)이 체인으로 연결되는 디지털 인증서가 포함된 UEFI 보안 부팅 펌웨어를 지원하는 시스템용이다.
- 부팅 시 다른 프로세스보다 먼저 검증기가 시작되어 펌웨어의 인증서에 대한 VIB의 체인을 확인한다.
# 암호화된 코어 덤프
- 다음 링크 참고
# Lockdown Mode
- ESXi 호스트에서 설정할 수 있다. 로그인 및 API 기능이 ESXi 호스트에서 직접 실행되지 않도록 비활성화 하는 모드
- 일반적으로 ESXi에서 직접 실행하지 않고 vCenter를 통해 운영함. 즉 호스트 관리를 vCenter로 제한하는 것임.
- Enable 하면 보안에는 좋으나 원격지원에 많은 제약사항이 있게 됨.
# 빠른 패치 및 업그레이드를 위한 빠른 부팅
- vSphere 6.7의 New Feature 이다. 이 기능을 통해 리부팅이 1~2분만에 완료될 수 있다.
- 물리적 서버 BIOS를 다시 초기화하지 않고도 ESXi를 재부팅할 수 있음.
- 호스트 패치 및 호스트 업그레이드 작업 중 문제 해결 시간을 줄여줄 수 있다.
- 지원되는 하드웨어가 필요하며, 지원되는 하드웨어에서는 기본적으로 활성화된다.
- 일반적으로 VMware의 최신 가능은 Dell 하드웨어가 가장 먼저 호환이 지원된다. 예를들어 vSphere 6.7에서 PowerEdge R730이 빠른부팅이 호환되는 식이다.
'VMWare > ESXi' 카테고리의 다른 글
ESXi 설치 및 기본구성 (예시 : ESXi 7.0.3) (0) | 2023.03.18 |
---|
VMware에서 사용하는 인터페이스 종류
1. VMware Host Client
* 접속 주소
- https://ESXi_FQDN_or_IP_Address/ui
* 설명
- 개별 ESXi 호스트 직접 관리 인터페이스
- ESXi를 설치하고 ESXi의 IP로 접속 가능
- HTML5 기반, JAVA같은 추가 설치 필요 없음
- 일반적으로 잘 사용하지 않으며, vCenter Server를 사용하지 못하는 경우 사용
2. vSphere Client
* 접속 주소
- https://vCenter_Server_Appliance_FQDN_or_IP_Address/ui
- 언더바 조심
- 해당 주소를 사용하면 URL이 내부적으로 vCenter Server 의 포트 9443 으로 리디렉션됨
* 설명
- vCenter Server Appliance에 연결하기 위한 클라이언트
- HTML5 기반, JAVA같은 추가 설치 필요 없음
- 6.7까지는 vSphere Web Client라는것이 있었고, Flash 기반이었다. 보안에 치명적
- 이후 7.0부터는 vSphere Client를 사용하게 되었고, vSphere Web Client는 더이상 사용하지 않음.
- vCenter Server Appliance 와 vCenter Server 오브젝트 인벤토리를 관리할 수 있음.
- 여러개의 ESXi 호스트를 한번에 보고 구성할 수 있고 한번에 모니터링 가능
3. PowerCLI
- Windows Powershell 기반 명령줄 및 스크립팅 툴
- vSphere API에 대한 PowerShell 인터페이스 제공
- vSphere 관리 및 자동화를 위한 700개 이상의 cmdlet 제공
- 자동화에 많이 쓰인다. 이미 만들어놓은 API가 많다.
- API를 통해 스크립트를 만들거나 이미 있는 스크립트 사용 가능
- PowerCLI는 윈도우 등 클라이언트에서 설치하며, 설치 후에는 아래 예시처럼 vcenter나 ESXi에 접속하여 사용한다.
Connect-VIServer -Server 192.168.0.100 -User root -Password passw0rd
- 관련 정보 : https://code.vmware.com/web/tool/12.0.0/vmware-powercli
4. ESXCLI
- ESXCLI는 ESXi 쉘의 일부로, 낮은 수준에서 ESXi 자체를 제어하기 위한 CLI 프레임워크이다.
- ESXi 자체에 putty로 접속하는것은 ESXi 쉘에 직접 연결하는 것이며, ESXCLI와 다름.
- ESXCLI는 따로 전용 명령세트 제공하며, 이것을 사용하여 ESXi 호스트를 원격 관리 가능.
- vCenter Server 시스템에 대해 ESCLI 명령 수행도 가능.
- 윈도우나 리눅스 같은 사용자 클라이언트에 설치해서 사용
'VMWare' 카테고리의 다른 글
VMware Certified Professional (VCP) 연습문제 (0) | 2023.08.21 |
---|
[Troubleshooting] 사이트 데이터를 가져오지 못할 때
몇년만에 글을 쓰는지 모르겠다.
도커 컨테이너를 사용하여 스크래핑과 사이트 두개의 컨테이너를 올리는데, 스크래핑 컨테이너가 중간에 잘못 종료되는경우 DB에 문제가 생긴다. 이건 생각보다 꽤 큰 문제점이다.
이 문제는 DB스위칭을 하기 때문이며, DB 스위칭을 테이블 이름 변경으로 스위칭 하기 때문이다.
현재 아래와 같이 2개의 테이블이 있다.
원래 이 DB는 아래와 같은 코드로 스위칭된다.
# 1. bg_product_data 에서 크롤링 완료 (유저가 접속하는것은 실제로 product_data 이다.)
# 2. product_data를 dummy_product_data로 이름변경 (dummy에는 옛날 데이터가 있다.)
# 3. bg_product_data를 product_data로 이름변경 (product_data에는 최신 데이터가 있다.)
# 4. dummy_product_data를 bg_product_data로 이름변경 (옛날 데이터가 있는 dummy가 bg로 변경된다. 어차피 또 스크래핑 하면, 데이터는 싹 다 날라간다.)
# 5. bg_product_data 에서 크롤링 완료... 이하반복
originalToDummy = "ALTER TABLE product_data RENAME dummy_product_data;"
bgToOriginal = "ALTER TABLE bg_product_data RENAME product_data;"
dummyToBg = "ALTER TABLE dummy_product_data RENAME bg_product_data;"
근데 중간에 잘못되어 저 3개의 RENAME 작업이 모두 하나의 트랜잭션으로써 완료되지 않으면 위와같이 bg_product_data, product_data 두개로 남아야 되는데 그게 안되고 dummy_product_data, bg_product_data 이런식으로 남게 되는 것이다. 이러면 크롤링할 데이터를 넣고 DB 이름변경으로 스위칭하는데 문제가 생긴다.
아무튼, 괜히 문제없는 크롤링 코드를 건드리려고 했다가 DB를 보고 문제를 바로 파악해서 다행이다.
'SCC 9기' 카테고리의 다른 글
[SCC 9기] - Project 회고록 : 8주간의 스파르타 코딩클럽 후기 (0) | 2020.09.08 |
---|---|
[SCC 9기] - Project TIL : 서버 단 작업 (0) | 2020.09.07 |
[SCC 9기] - Project 회고록 : 8주간의 스파르타 코딩클럽 후기 (0) | 2020.09.03 |
[SCC 9기] - Project TIL : DB 스위칭 (0) | 2020.08.31 |
[SCC 9기] - Project TIL : DB 중복제거와 짧은 데이터 제거 (0) | 2020.08.31 |