Proxmox 매뉴얼 : 3.5 시간 동기화 ~ 3.8 LVM

Proxmox VE 8.1.3 매뉴얼을 Google Translate를 이용해서 기계번역하고, 살짝 교정했습니다.
https://pve.proxmox.com/pve-docs/pve-admin-guide.html

3.5. 시간 동기화

Proxmox VE 클러스터 스택 자체는 모든 노드의 시간이 정확하게 동기화된다는 사실에 크게 의존합니다. 모든 노드의 현지 시간이 동기화되지 않으면 Ceph와 같은 일부 다른 구성 요소도 제대로 작동하지 않습니다.

노드 간 시간 동기화는 “Network Time Protocol”(NTP)을 사용하여 달성할 수 있습니다. Proxmox VE 7부터는 chrony가 기본 NTP 데몬으로 사용되는 반면 Proxmox VE 6은 systemd-timesyncd를 사용합니다. 둘 다 공용 서버 세트를 사용하도록 사전 구성되어 있습니다.

중요: 시스템을 Proxmox VE 7로 업그레이드하는 경우 chrony, ntp 또는 openntpd를 수동으로 설치하는 것이 좋습니다.

3.5.1. 사용자 정의 NTP 서버 사용
어떤 경우에는 기본이 아닌 NTP 서버를 사용하는 것이 필요할 수 있습니다. 예를 들어 Proxmox VE 노드가 제한적인 방화벽 규칙으로 인해 공용 인터넷에 액세스할 수 없는 경우 로컬 NTP 서버를 설정하고 이를 사용하도록 NTP 데몬에 지시해야 합니다.

chrony를 사용하는 시스템의 경우:
/etc/chrony/chrony.conf에서 chrony가 사용해야 할 서버를 지정합니다:

server ntp1.example.com iburst
server ntp2.example.com iburst
server ntp3.example.com iburst

chrony 재시작:

# systemctl restart chronyd

저널을 확인하여 새로 구성된 NTP 서버가 사용되고 있는지 확인하세요.

# journalctl --since -1h -u chrony
...
Aug 26 13:00:09 node1 systemd[1]: Started chrony, an NTP client/server.
Aug 26 13:00:15 node1 chronyd[4873]: Selected source 10.0.0.1 (ntp1.example.com)
Aug 26 13:00:15 node1 chronyd[4873]: System clock TAI offset set to 37 seconds
...

systemd-timesyncd를 사용하는 시스템의 경우:
/etc/systemd/timesyncd.conf에서 systemd-timesyncd가 사용해야 하는 서버를 지정합니다.

[Time]
NTP=ntp1.example.com ntp2.example.com ntp3.example.com ntp4.example.com

그런 다음 동기화 서비스를 다시 시작하고(systemctl restart systemd-timesyncd) 저널을 확인하여(journalctl –since -1h -u systemd-timesyncd) 새로 구성된 NTP 서버가 사용 중인지 확인합니다.

...
Oct 07 14:58:36 node1 systemd[1]: Stopping Network Time Synchronization...
Oct 07 14:58:36 node1 systemd[1]: Starting Network Time Synchronization...
Oct 07 14:58:36 node1 systemd[1]: Started Network Time Synchronization.
Oct 07 14:58:36 node1 systemd-timesyncd[13514]: Using NTP server 10.0.0.1:123 (ntp1.example.com).
Oct 07 14:58:36 node1 systemd-timesyncd[13514]: interval/delta/delay/jitter/drift 64s/-0.002s/0.020s/0.000s/-31ppm
...

3.6. 외부 메트릭 서버

Proxmox VE에서는 호스트, 가상 게스트 및 스토리지에 대한 다양한 통계를 주기적으로 수신하는 외부 메트릭 서버를 정의할 수 있습니다.

현재 지원되는 것은 다음과 같습니다:

  • Graphite(https://graphiteapp.org 참조)
  • InfluxDB(https://www.influxdata.com/time-series-platform/influxdb/ 참조)

외부 메트릭 서버 정의는 /etc/pve/status.cfg에 저장되며 웹 인터페이스를 통해 편집할 수 있습니다.

3.6.1. 그래파이트 서버 구성

기본 포트는 2003으로 설정되어 있고 기본 그래파이트 경로는 proxmox입니다.
https://pve.proxmox.com/pve-docs/images/screenshot/gui-datacenter-metric-server-list.png

기본적으로 Proxmox VE는 UDP를 통해 데이터를 전송하므로 Graphite 서버는 이를 허용하도록 구성되어야 합니다. 여기서 표준 1500 MTU를 사용하지 않는 환경에 대해 최대 전송 단위(MTU)를 구성할 수 있습니다.

TCP를 사용하도록 플러그인을 구성할 수도 있습니다. 중요한 pvestatd 통계 수집 데몬을 차단하지 않으려면 네트워크 문제에 대처하기 위한 시간 초과가 필요합니다.

3.6.2. Influxdb 플러그인 구성

Proxmox VE는 UDP를 통해 데이터를 전송하므로 이를 위해 influxdb 서버를 구성해야 합니다. 필요한 경우 여기에서 MTU를 구성할 수도 있습니다.
https://pve.proxmox.com/pve-docs/images/screenshot/gui-datacenter-metric-server-graphite.png

다음은 influxdb에 대한 구성 예입니다(influxdb 서버에서).

[[udp]]
   enabled = true
   bind-address = "0.0.0.0:8089"
   database = "proxmox"
   batch-size = 1000
   batch-timeout = "1s"

이 구성을 사용하면 서버는 포트 8089의 모든 IP 주소를 수신하고 proxmox 데이터베이스에 데이터를 씁니다.

또는 InfluxDB 2.x의 http(s) API를 사용하도록 플러그인을 구성할 수 있습니다. InfluxDB 1.8.x에는 이 v2 API에 대한 앞으로 호환되는 API 엔드포인트가 포함되어 있습니다.

이를 사용하려면 influxdbproto를 http 또는 https로 설정하십시오(구성에 따라 다름). 기본적으로 Proxmox VE는 조직 proxmox 및 버킷/db proxmox를 사용합니다(각각 구성 조직 및 버킷으로 설정할 수 있음).

InfluxDB의 v2 API는 인증을 통해서만 사용 가능하므로 올바른 버킷에 쓸 수 있는 토큰을 생성하고 설정해야 합니다.

1.8.x v2 호환 API에서는 user:password를 토큰으로 사용할 수 있으며(필요한 경우) InfluxDB 1.x에서는 의미가 없으므로 조직을 생략할 수 있습니다.

또한 timeout 설정으로 HTTP 시간 초과(기본값은 1초)를 설정할 수 있을 뿐만 아니라 max-body-size 설정으로 최대 배치 크기(기본값 25000000바이트)를 설정할 수도 있습니다(이는 동일한 이름의 InfluxDB 설정에 해당함).

3.7. 디스크 상태 모니터링

강력하고 중복된 스토리지가 권장되지만 로컬 디스크의 상태를 모니터링하는 것이 매우 도움이 될 수 있습니다.

Proxmox VE 4.3부터 smartmontools [1] 패키지가 설치되고 필요합니다. S.M.A.R.T.를 모니터링하고 제어하는 도구 세트입니다. 로컬 하드 디스크용 시스템.

다음 명령을 실행하여 디스크 상태를 가져올 수 있습니다.

# smartctl -a /dev/sdX

여기서 /dev/sdX는 로컬 디스크 중 하나의 경로입니다.

출력 결과가 다음과 같은 경우:

SMART support is: Disabled

다음 명령을 사용하여 활성화할 수 있습니다.

# smartctl -s on /dev/sdX

smartctl 사용 방법에 대한 자세한 내용은 man smartctl을 참조하세요.

기본적으로 smartmontools 데몬 smartd는 활성화되어 있으며 /dev/sdX 및 /dev/hdX 아래의 디스크에서 30분마다 오류 및 경고를 검색하고 문제가 발견되면 루트에 이메일을 보냅니다.

smartd 구성 방법에 대한 자세한 내용은 man smartd 및 man smartd.conf를 참조하세요.

하드웨어 RAID 컨트롤러와 함께 하드 디스크를 사용하는 경우 RAID 어레이의 디스크와 어레이 자체를 모니터링하는 도구가 있을 가능성이 높습니다. 이에 대한 자세한 내용은 RAID 컨트롤러 공급업체에 문의하세요.

3.8. LVM(Logical Bolume Manager)

대부분의 사람들은 Proxmox VE를 로컬 디스크에 직접 설치합니다. Proxmox VE 설치 CD는 로컬 디스크 관리를 위한 여러 옵션을 제공하며 현재 기본 설정에서는 LVM을 사용합니다. 설치 프로그램을 사용하면 이러한 설정을 위해 단일 디스크를 선택할 수 있으며 해당 디스크를 VG(볼륨 그룹) pve의 물리적 볼륨으로 사용합니다. 다음 출력은 작은 8GB 디스크를 사용한 테스트 설치의 결과입니다.

# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda3  pve  lvm2 a--  7.87g 876.00m

# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  pve    1   3   0 wz--n- 7.87g 876.00m

설치 프로그램은 이 VG 내에 세 개의 Logical Volumes(LV)을 할당합니다.

# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%
  data pve  twi-a-tz--   4.38g             0.00   0.63
  root pve  -wi-ao----   1.75g
  swap pve  -wi-ao---- 896.00m
root

ext4로 형식화되며 운영 체제를 포함합니다.

swap

스왑 파티션

data

이 볼륨은 LVM-thin을 사용하며 VM 이미지를 저장하는 데 사용됩니다. LVM-thin은 스냅샷 및 복제에 대한 효율적인 지원을 제공하므로 이 작업에 적합합니다.

Proxmox VE 버전 4.1 이하의 경우 설치 프로그램은 /var/lib/vz에 마운트되는 “data”라는 표준 논리 볼륨을 생성합니다.

버전 4.2부터 논리 볼륨 “data”는 블록 기반 게스트 이미지를 저장하는 데 사용되는 LVM-thin 풀이며 /var/lib/vz는 단순히 루트 파일 시스템의 디렉터리입니다.

3.8.1. 하드웨어

이러한 설정에는 하드웨어 RAID 컨트롤러(BBU 포함)를 사용하는 것이 좋습니다. 이를 통해 성능이 향상되고, 중복성이 제공되며, 디스크 교체가 더 쉬워집니다(핫 플러그 가능).

LVM 자체에는 특별한 하드웨어가 필요하지 않으며 메모리 요구 사항도 매우 낮습니다.

3.8.2. 부트로더

기본적으로 두 개의 부트로더를 설치합니다. 첫 번째 파티션에는 표준 GRUB 부트 로더가 포함되어 있습니다. 두 번째 파티션은 ESP(EFI 시스템 파티션)입니다. 이를 통해 EFI 시스템에서 부팅하고 사용자 공간에서 지속적인 펌웨어 업데이트를 적용할 수 있습니다.

3.8.3. 볼륨 그룹 생성

“vmdata”라는 볼륨 그룹을 생성하려는 빈 디스크 /dev/sdb가 있다고 가정해 보겠습니다.

주의: 다음 명령은 /dev/sdb에 있는 기존 데이터를 모두 삭제합니다.

먼저 파티션을 만듭니다.

# sgdisk -N 1 /dev/sdb

확인 없이 250K 메타데이터 크기의 물리 볼륨(PV)을 생성합니다.

# pvcreate --metadatasize 250k -y -ff /dev/sdb1

/dev/sdb1에 “vmdata”라는 볼륨 그룹을 생성합니다.

# vgcreate vmdata /dev/sdb1

3.8.4. /var/lib/vz에 대한 추가 LV 생성
이는 새로운 얇은 LV를 생성하여 쉽게 수행할 수 있습니다.

# lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>

실제 사례:

# lvcreate -n vz -V 10G pve/data

이제 LV에 파일 시스템을 생성해야 합니다.

# mkfs.ext4 /dev/pve/vz

마지막으로 이것을 마운트해야 합니다.

경고: /var/lib/vz가 비어 있는지 확인하세요. 기본 설치에서는 그렇지 않습니다.

항상 액세스 가능하게 하려면 /etc/fstab에 다음 줄을 추가하십시오.

# echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab

3.8.5. 가상 풀 크기 조정

다음 명령을 사용하여 LV 및 메타데이터 풀의 크기를 조정합니다.

# lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>

참고: 데이터 풀을 확장할 때 메타데이터 풀도 확장해야 합니다.

3.8.6. LVM 씬 풀 생성

볼륨 그룹 위에 가상 풀을 생성해야 합니다. 볼륨 그룹을 생성하는 방법은 LVM 섹션을 참조하십시오.

# lvcreate -L 80G -T -n vmstore vmdata
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

03.4 네트워크 구성

Proxmox VE 8.1.3 매뉴얼을 DeepL/Google Translate를 이용해서 기계번역하고, 살짝 교정했습니다.https://pve.proxmox.com/pve-docs/pve-admin-guide.html 3.4. 네트워크 구성 Proxmox VE는 Linux 네트워크 스택을…