Proxmox 매뉴얼 : 07. Proxmox VE Storage

Proxmox VE 매뉴얼을 Google Translate로 기계번역하고, 살짝 교정했습니다.
https://pve.proxmox.com/pve-docs/pve-admin-guide.html
version 8.1.4, Wed Mar 6 18:21:39 CET 2024

Proxmox VE 스토리지 모델은 매우 유연합니다. 가상 머신 이미지는 하나 이상의 로컬 스토리지에 저장하거나 NFS 또는 iSCSI(NAS, SAN)와 같은 공유 스토리지에 저장할 수 있습니다. 제한이 없으며 원하는 만큼 많은 스토리지 풀을 구성할 수 있습니다. Debian Linux에서 사용 가능한 모든 스토리지 기술을 사용할 수 있습니다.

공유 스토리지에 VM을 저장하는 것의 주요 이점 중 하나는 클러스터의 모든 노드가 VM 디스크 이미지에 직접 액세스할 수 있으므로 가동 중지 시간 없이 실행 중인 시스템을 실시간 마이그레이션할 수 있다는 것입니다. VM 이미지 데이터를 복사할 필요가 없으므로 이 경우 라이브 마이그레이션이 매우 빠릅니다.

저장소 라이브러리(libpve-storage-perl 패키지)는 유연한 플러그인 시스템을 사용하여 모든 저장소 유형에 공통 인터페이스를 제공합니다. 이는 향후 추가 스토리지 유형을 포함하도록 쉽게 채택될 수 있습니다.

7.1. 스토리지 유형

기본적으로 저장소 유형에는 두 가지 클래스가 있습니다.

파일 수준 스토리지

파일 수준 기반 스토리지 기술을 사용하면 모든 기능을 갖춘 (POSIX) 파일 시스템에 액세스할 수 있습니다. 일반적으로 블록 수준 저장소(아래 참조)보다 더 유연하며 모든 유형의 콘텐츠를 저장할 수 있습니다. ZFS는 아마도 가장 발전된 시스템일 것이며 스냅샷과 복제본을 완벽하게 지원합니다.

블록 레벨 스토리지

큰 원시 이미지를 저장할 수 있습니다. 일반적으로 이러한 저장 유형에는 다른 파일(ISO, 백업 등)을 저장할 수 없습니다. 대부분의 최신 블록 수준 스토리지 구현은 스냅샷과 클론을 지원합니다. RADOS 및 GlusterFS는 스토리지 데이터를 다른 노드에 복제하는 분산 시스템입니다.

표 2. 사용 가능한 스토리지 유형

DescriptionPlugin typeLevelSharedSnapshotsStable
ZFS (local)zfspoolboth1noyesyes
Directorydirfilenono2yes
BTRFSbtrfsfilenoyestechnology preview
NFSnfsfileyesno2yes
CIFScifsfileyesno2yes
Proxmox Backuppbsbothyesn/ayes
GlusterFSglusterfsfileyesno2yes
CephFScephfsfileyesyesyes
LVMlvmblockno3noyes
LVM-thinlvmthinblocknoyesyes
iSCSI/kerneliscsiblockyesnoyes
iSCSI/libiscsiiscsidirectblockyesnoyes
Ceph/RBDrbdblockyesyesyes
ZFS over iSCSIzfsblockyesyesyes

1: VM용 디스크 이미지는 블록 장치 기능을 제공하는 ZFS 볼륨(zvol) 데이터 세트에 저장됩니다.
2: 파일 기반 저장소에서는 qcow2 형식으로 스냅샷이 가능합니다.
3: iSCSI 또는 FC 기반 스토리지 위에서 LVM을 사용할 수 있습니다. 그렇게 하면 공유 LVM 저장소를 얻을 수 있습니다.

7.1.1. 씬 프로비저닝

다수의 스토리지와 QEMU 이미지 형식 qcow2가 씬 프로비저닝을 지원합니다. 씬 프로비저닝이 활성화되면 게스트 시스템에서 실제로 사용하는 블록만 스토리지에 기록됩니다.

예를 들어 32GB 하드 디스크로 VM을 생성하고 게스트 시스템 OS를 설치한 후 VM의 루트 파일 시스템에 3GB의 데이터가 포함되어 있다고 가정해 보겠습니다. 이 경우 게스트 VM에 32GB 하드 드라이브가 표시되더라도 스토리지에는 3GB만 기록됩니다. 이러한 방식으로 씬 프로비저닝을 사용하면 현재 사용 가능한 스토리지 블록보다 큰 디스크 이미지를 생성할 수 있습니다. VM에 대한 대용량 디스크 이미지를 생성할 수 있으며, 필요한 경우 VM의 파일 시스템 크기를 조정하지 않고도 스토리지에 더 많은 디스크를 추가할 수 있습니다.

“스냅샷” 기능이 있는 모든 스토리지 유형도 씬 프로비저닝을 지원합니다.

주의: 스토리지가 가득 차면 해당 스토리지에서 볼륨을 사용하는 모든 게스트에게 IO 오류가 발생합니다. 이로 인해 파일 시스템 불일치가 발생하고 데이터가 손상될 수 있습니다. 따라서 스토리지 리소스를 과도하게 프로비저닝하지 않거나 이러한 상황을 피하기 위해 여유 공간을 주의 깊게 관찰하는 것이 좋습니다.

7.2. 스토리지 구성

모든 Proxmox VE 관련 스토리지 구성은 /etc/pve/storage.cfg의 단일 텍스트 파일 내에 저장됩니다. 이 파일은 /etc/pve/ 내에 있으므로 모든 클러스터 노드에 자동으로 배포됩니다. 따라서 모든 노드는 동일한 스토리지 구성을 공유합니다.

공유 스토리지 구성은 모든 노드에서 동일한 “공유” 스토리지에 액세스할 수 있으므로 공유 스토리지에 적합합니다. 그러나 로컬 저장소 유형에도 유용합니다. 이 경우 이러한 로컬 저장소는 모든 노드에서 사용할 수 있지만 물리적으로 다르며 완전히 다른 내용을 가질 수 있습니다.

7.2.1. 스토리지 풀

각 스토리지 풀에는 이 있으며 해당 로 고유하게 식별됩니다. 풀 구성은 다음과 같습니다.

<type>: <STORAGE_ID>
        <property> <value>
        <property> <value>
        <property>
        ...

: 줄은 풀 정의를 시작한 다음 속성 목록이 나옵니다. 대부분의 속성에는 값이 필요합니다. 일부에는 합리적인 기본값이 있으며, 이 경우 값을 생략할 수 있습니다.

보다 구체적으로 설치 후 기본 스토리지 구성을 살펴보세요. 여기에는 /var/lib/vz 디렉토리를 참조하고 항상 사용 가능한 local이라는 특수 로컬 스토리지 풀이 하나 포함되어 있습니다. Proxmox VE 설치 프로그램은 설치 시 선택한 저장소 유형에 따라 추가 저장소 항목을 생성합니다.

기본 스토리지 구성(/etc/pve/storage.cfg)

dir: local
        path /var/lib/vz
        content iso,vztmpl,backup

# default image store on LVM based installation
lvmthin: local-lvm
        thinpool data
        vgname pve
        content rootdir,images

# default image store on ZFS based installation
zfspool: local-zfs
        pool rpool/data
        sparse
        content images,rootdir

7.2.2. 공통 스토리지 속성

몇 가지 스토리지 속성은 다양한 스토리지 유형에서 공통적으로 사용됩니다.

node

이 스토리지를 사용하거나 액세스할 수 있는 클러스터 노드 이름 목록입니다. 이 속성을 사용하여 제한된 노드 집합으로 스토리지 액세스를 제한할 수 있습니다.

content

스토리지는 가상 디스크 이미지, CDROM ISO 이미지, 컨테이너 템플릿 또는 컨테이너 루트 디렉터리와 같은 여러 콘텐츠 유형을 지원할 수 있습니다. 모든 저장소 유형이 모든 콘텐츠 유형을 지원하는 것은 아닙니다. 이 속성을 설정하여 이 저장소의 용도를 선택할 수 있습니다.

  • image : QEMU/KVM VM 이미지.
  • rootdir : 컨테이너 데이터 저장을 허용합니다.
  • vztmpl : 컨테이너 템플릿.
  • backup : 백업 파일(vzdump).
  • iso : ISO 이미지
  • snippets : 스니펫 파일(예: 게스트 후크 스크립트)
shared

모든 노드(또는 노드 옵션에 나열된 모든 항목)에서 동일한 콘텐츠를 포함하는 단일 스토리지임을 나타냅니다. 로컬 저장소의 콘텐츠를 다른 노드에서 자동으로 액세스할 수 있게 만드는 것이 아니라 이미 공유된 저장소를 그렇게 표시할 뿐입니다!

disable

이 플래그를 사용하여 저장소를 완전히 비활성화할 수 있습니다.

maxfiles

더 이상 사용되지 않습니다. 대신 prune-backups을 사용하세요. VM당 최대 백업 파일 수입니다. 무제한으로 사용하려면 0을 사용하세요.

prune-backups

백업에 대한 보관 옵션입니다. 자세한 내용은 백업 보존을 참조하세요.

format

기본 이미지 형식(raw|qcow2|vmdk)

preallocation

파일 기반 저장소의 원시 및 qcow2 이미지에 대한 사전 할당 모드(off|metadata|falloc|full). 기본값은 원시 이미지에 대해 꺼진 것처럼 처리되는 메타데이터입니다. 대용량 qcow2 이미지와 함께 네트워크 저장소를 사용할 때 off를 사용하면 시간 초과를 방지하는 데 도움이 될 수 있습니다.

경고: 서로 다른 Proxmox VE 클러스터에서 동일한 스토리지 풀을 사용하는 것은 바람직하지 않습니다. 일부 저장소 작업에는 저장소에 대한 독점적인 액세스가 필요하므로 적절한 잠금이 필요합니다. 이는 클러스터 내에서 구현되지만 다른 클러스터 간에는 작동하지 않습니다.

7.3 볼륨

우리는 저장 데이터를 처리하기 위해 특별한 표기법을 사용합니다. 스토리지 풀에서 데이터를 할당하면 이러한 볼륨 식별자가 반환됩니다. 볼륨은 로 식별되며 그 뒤에 콜론으로 구분된 스토리지 유형 종속 볼륨 이름이 옵니다. 유효한 는 다음과 같습니다.

local:230/example-image.raw
local:iso/debian-501-amd64-netinst.iso
local:vztmpl/debian-5.0-joomla_1.5.9-1_i386.tar.gz
iscsi-storage:0.0.2.scsi-14f504e46494c4500494b5042546d2d646744372d31616d61

의 파일 시스템 경로를 얻으려면 다음을 사용하세요.

pvesm path <VOLUME_ID>

7.3.1. 볼륨 소유권

이미지 유형 볼륨에는 소유권 관계가 있습니다. 이러한 각 볼륨은 VM 또는 컨테이너가 소유합니다. 예를 들어 볼륨 local:230/example-image.raw는 VM 230이 소유합니다. 대부분의 스토리지 백엔드는 이 소유권 정보를 볼륨 이름으로 인코딩합니다.

VM 또는 컨테이너를 제거하면 시스템은 해당 VM 또는 컨테이너가 소유한 모든 관련 볼륨도 제거합니다.

7.4. 명령줄 인터페이스 사용

스토리지 풀과 볼륨 식별자 뒤에 있는 개념을 익히는 것이 좋지만 실제로는 명령줄에서 이러한 낮은 수준의 작업을 수행할 필요가 없습니다. 일반적으로 볼륨 할당 및 제거는 VM 및 컨테이너 관리 도구를 통해 수행됩니다.

그럼에도 불구하고 일반적인 스토리지 관리 작업을 수행할 수 있는 pvesm(“Proxmox VE Storage Manager”)이라는 명령줄 도구가 있습니다.

7.4.1. 예

스토리지 풀 추가

pvesm add <TYPE> <STORAGE_ID> <OPTIONS>
pvesm add dir <STORAGE_ID> --path <PATH>
pvesm add nfs <STORAGE_ID> --path <PATH> --server <SERVER> --export <EXPORT>
pvesm add lvm <STORAGE_ID> --vgname <VGNAME>
pvesm add iscsi <STORAGE_ID> --portal <HOST[:PORT]> --target <TARGET>

스토리지 풀 비활성화

pvesm set <STORAGE_ID> --disable 1

스토리지 풀 활성화

pvesm set <STORAGE_ID> --disable 0

저장소 옵션 변경/설정

pvesm set <STORAGE_ID> <OPTIONS>
pvesm set <STORAGE_ID> --shared 1
pvesm set local --format qcow2
pvesm set <STORAGE_ID> --content iso

스토리지 풀을 제거합니다. 이렇게 해도 데이터가 삭제되지 않으며 어떤 것도 연결 해제되거나 마운트 해제되지 않습니다. 단지 스토리지 구성만 제거됩니다.

pvesm remove <STORAGE_ID>

볼륨 할당

pvesm alloc <STORAGE_ID> <VMID> <name> <size> [--format <raw|qcow2>]

로컬 저장소에 4G 볼륨을 할당합니다. 빈 문자열을 으로 전달하면 이름이 자동 생성됩니다.

pvesm alloc local <VMID> '' 4G

무료 볼륨

pvesm free <VOLUME_ID>

경고: 이는 실제로 모든 볼륨 데이터를 파괴합니다.

저장 상태 나열

pvesm status

저장소 콘텐츠 나열

pvesm list <STORAGE_ID> [--vmid <VMID>]

VMID로 할당된 볼륨 나열

pvesm list <STORAGE_ID> --vmid <VMID>

ISO 이미지 나열

pvesm list <STORAGE_ID> --content iso

컨테이너 템플릿 나열

pvesm list <STORAGE_ID> --content vztmpl

볼륨의 파일 시스템 경로 표시

pvesm path <VOLUME_ID>

볼륨 local:103/vm-103-disk-0.qcow2를 파일 대상으로 내보냅니다. 이는 주로 pvesm import와 함께 내부적으로 사용됩니다. 스트림 형식 qcow2+size는 qcow2 형식과 다릅니다. 따라서 내보낸 파일을 단순히 VM에 연결할 수는 없습니다. 이는 다른 형식에도 적용됩니다.

pvesm export local:103/vm-103-disk-0.qcow2 qcow2+size target --with-snapshots 1

7.5. 디렉터리 백엔드

스토리지 풀 유형: dir

Proxmox VE는 저장을 위해 로컬 디렉터리나 로컬로 마운트된 공유를 사용할 수 있습니다. 디렉터리는 파일 수준 저장소이므로 가상 디스크 이미지, 컨테이너, 템플릿, ISO 이미지 또는 백업 파일과 같은 모든 콘텐츠 유형을 저장할 수 있습니다.

참고: 표준 Linux /etc/fstab을 통해 추가 저장소를 마운트한 다음 해당 마운트 지점에 대한 디렉터리 저장소를 정의할 수 있습니다. 이렇게 하면 Linux에서 지원하는 모든 파일 시스템을 사용할 수 있습니다.

이 백엔드는 기본 디렉터리가 POSIX와 호환된다고 가정하지만 그 외에는 아무 것도 없습니다. 이는 스토리지 수준에서 스냅샷을 생성할 수 없음을 의미합니다. 그러나 qcow2 파일 형식을 사용하는 VM 이미지에 대한 해결 방법이 있습니다. 해당 형식이 내부적으로 스냅샷을 지원하기 때문입니다.

팁: 일부 저장소 유형은 O_DIRECT를 지원하지 않으므로 이러한 저장소에서는 캐시 모드 없음을 사용할 수 없습니다. 대신 캐시 모드 쓰기 저장을 사용하면 됩니다.

우리는 미리 정의된 디렉터리 레이아웃을 사용하여 다양한 콘텐츠 유형을 다양한 하위 디렉터리에 저장합니다. 이 레이아웃은 모든 파일 수준 저장소 백엔드에서 사용됩니다.

표 3. 디렉터리 레이아웃

Content typeSubdir
VM imagesimages//
ISO imagestemplate/iso/
Container templatestemplate/cache/
Backup filesdump/
Snippetssnippets/

7.5.1. 구성

이 백엔드는 모든 공통 스토리지 속성을 지원하고 두 가지 추가 속성을 추가합니다. path 속성은 디렉터리를 지정하는 데 사용됩니다. 이는 절대 파일 시스템 경로여야 합니다.

선택적 content-dirs 속성을 사용하면 기본 레이아웃을 변경할 수 있습니다. 이는 다음 형식의 쉼표로 구분된 식별자 목록으로 구성됩니다.

vtype=path

여기서 vtype은 스토리지에 허용되는 콘텐츠 유형 중 하나이고 path는 스토리지 마운트 지점에 대한 상대 경로입니다.

구성 예(/etc/pve/storage.cfg)

dir: backup
        path /mnt/backup
        content backup
        prune-backups keep-last=7
        max-protected-backups 3
        content-dirs backup=custom/backup/dir

위 구성은 백업이라는 스토리지 풀을 정의합니다. 해당 풀은 VM당 최대 7개의 일반 백업(keep-last=7)과 3개의 보호된 백업을 저장하는 데 사용할 수 있습니다. 백업 파일의 실제 경로는 /mnt/backup/custom/backup/dir/….입니다.

7.5.2. 파일 명명 규칙

이 백엔드는 VM 이미지에 대해 잘 정의된 명명 체계를 사용합니다.

vm-<VMID>-<NAME>.<FORMAT>


이는 소유자 VM을 지정합니다.


공백 없이 임의의 이름(ascii)을 사용할 수 있습니다. 백엔드는 disk-[N]을 기본값으로 사용합니다. 여기서 [N]은 정수로 대체되어 이름을 고유하게 만듭니다.


이미지 형식(raw|qcow2|vmdk)을 지정합니다.

VM 템플릿을 생성하면 모든 VM 이미지의 이름이 변경되어 이제 읽기 전용이며 복제용 기본 이미지로 사용할 수 있음을 나타냅니다.

base-<VMID>-<NAME>.<FORMAT>

참고: 이러한 기본 이미지는 복제된 이미지를 생성하는 데 사용됩니다. 따라서 해당 파일은 읽기 전용이고 수정되지 않는 것이 중요합니다. 백엔드는 액세스 모드를 0444로 변경하고 스토리지가 이를 지원하는 경우 변경할 수 없는 플래그(chattr +i)를 설정합니다.

7.5.3. 스토리지 기능

위에서 언급했듯이 대부분의 파일 시스템은 기본적으로 스냅샷을 지원하지 않습니다. 이 문제를 해결하기 위해 이 백엔드는 qcow2 내부 스냅샷 기능을 사용할 수 있습니다.

클론에도 동일하게 적용됩니다. 백엔드는 qcow2 기본 이미지 기능을 사용하여 복제본을 생성합니다.

표 4. 백엔드 디렉토리의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdir vztmpl iso backup snippetsraw qcow2 vmdk subvolnoqcow2qcow2

7.5.4. 예

로컬 스토리지에 4GB 이미지를 할당하려면 다음 명령을 사용하십시오.

# pvesm alloc local 100 vm-100-disk10.raw 4G
Formatting '/var/lib/vz/images/100/vm-100-disk10.raw', fmt=raw size=4294967296
successfully created 'local:100/vm-100-disk10.raw'

참고: 이미지 이름은 위의 명명 규칙을 따라야 합니다.

실제 파일 시스템 경로는 다음과 같이 표시됩니다.

# pvesm path local:100/vm-100-disk10.raw
/var/lib/vz/images/100/vm-100-disk10.raw

다음을 사용하여 이미지를 제거할 수 있습니다.

# pvesm free local:100/vm-100-disk10.raw

7.6. NFS 백엔드

스토리지 풀 유형: nfs

NFS 백엔드는 디렉터리 백엔드를 기반으로 하므로 대부분의 속성을 공유합니다. 디렉터리 레이아웃과 파일 명명 규칙은 동일합니다. 가장 큰 장점은 NFS 서버 속성을 직접 구성할 수 있으므로 백엔드가 공유를 자동으로 마운트할 수 있다는 것입니다. /etc/fstab을 수정할 필요가 없습니다. 백엔드는 또한 서버가 온라인인지 테스트할 수 있으며 내보낸 공유에 대해 서버를 쿼리하는 방법을 제공합니다.

7.6.1. 구성

백엔드는 항상 설정되는 공유 플래그를 제외한 모든 공통 스토리지 속성을 지원합니다. 또한 NFS 서버를 구성하는 데 다음 속성이 사용됩니다.

  • server : 서버 IP 또는 DNS 이름. DNS 조회 지연을 방지하려면 매우 안정적인 DNS 서버가 있거나 로컬 /etc/hosts 파일에 서버를 나열하지 않는 한 일반적으로 DNS 이름 대신 IP 주소를 사용하는 것이 좋습니다.
  • export : NFS 내보내기 경로(pvesm nfsscan에 나열됨)

NFS 마운트 옵션을 설정할 수도 있습니다.

  • path : 로컬 마운트 지점(기본값: /mnt/pve//)
  • content-dirs : 기본 디렉터리 레이아웃을 재정의합니다. 선택 과목.
  • options : NFS 마운트 옵션(man nfs 참조)

구성 예(/etc/pve/storage.cfg)

nfs: iso-templates
        path /mnt/pve/iso-templates
        server 10.0.0.10
        export /space/iso-templates
        options vers=3,soft
        content iso,vztmpl

팁: NFS 요청 시간이 초과되면 NFS 요청은 기본적으로 무기한 재시도됩니다. 이로 인해 클라이언트 측에서 예기치 않은 중단이 발생할 수 있습니다. 읽기 전용 콘텐츠의 경우 재시도 횟수를 3회로 제한하는 NFS 소프트 옵션을 고려해 보는 것이 좋습니다.

7.6.2. 저장 기능

NFS는 스냅샷을 지원하지 않지만 백엔드는 qcow2 기능을 사용하여 스냅샷 및 복제를 구현합니다.

표 5. 백엔드 nfs의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdir vztmpl iso backup snippetsraw qcow2 vmdkyesqcow2qcow2

7.6.3. 예

다음을 사용하여 내보낸 NFS 공유 목록을 얻을 수 있습니다.

# pvesm nfsscan <server>

7.7 CIFS 백엔드
스토리지 풀 유형: cifs

CIFS 백엔드는 디렉토리 백엔드를 확장하므로 CIFS 마운트를 수동으로 설정할 필요가 없습니다. 이러한 스토리지는 Proxmox VE API 또는 웹 UI를 통해 직접 추가할 수 있으며 서버 하트비트 확인 또는 내보낸 공유의 편리한 선택과 같은 모든 백엔드 이점을 제공합니다.

7.7.1. 구성

백엔드는 항상 설정되는 공유 플래그를 제외한 모든 공통 스토리지 속성을 지원합니다. 또한 다음과 같은 CIFS 특수 속성을 사용할 수 있습니다.

  • server : 서버 IP 또는 DNS 이름. 필수.

팁: DNS 조회 지연을 방지하려면 매우 안정적인 DNS 서버가 있거나 로컬 /etc/hosts 파일에 서버를 나열하지 않는 한 일반적으로 DNS 이름 대신 IP 주소를 사용하는 것이 좋습니다.

  • share: 사용할 CIFS 공유(pvesm scan cifs 또는 웹 UI를 사용하여 사용 가능한 항목 가져오기). 필수.
  • username: CIFS 스토리지의 사용자 이름입니다. 선택사항, 기본값은 ‘guest’입니다.
  • password: 사용자 비밀번호입니다. 선택 과목. 루트만 읽을 수 있는 파일(/etc/pve/priv/storage/.pw)에 저장됩니다.
  • domain: 이 저장소에 대한 사용자 도메인(작업 그룹)을 설정합니다. 선택.
  • smbversion: SMB 프로토콜 버전. 선택사항, 기본값은 3입니다. SMB1은 보안 문제로 인해 지원되지 않습니다.
  • path: 로컬 마운트 지점. 선택사항, 기본값은 /mnt/pve//입니다.
  • content-dirs: 기본 디렉터리 레이아웃을 재정의합니다. 선택.
  • options: 추가 CIFS 마운트 옵션(man mount.cifs 참조) 일부 옵션은 자동으로 설정되므로 여기서 설정하면 안 됩니다. Proxmox VE는 항상 소프트 옵션을 설정합니다. 구성에 따라 사용자 이름, 자격 증명, 게스트, 도메인, 버전 등의 옵션이 자동으로 설정됩니다.
  • subdir: 마운트할 공유의 하위 디렉터리입니다. 선택 사항이며 기본값은 공유의 루트 디렉터리입니다.

구성 예(/etc/pve/storage.cfg)

cifs: backup
        path /mnt/pve/backup
        server 10.0.0.11
        share VMData
        content backup
        options noserverino,echo_interval=30
        username anna
        smbversion 3
        subdir /data

7.7.2. 저장 기능

CIFS는 스토리지 수준의 스냅샷을 지원하지 않습니다. 하지만 스냅샷과 복제 기능을 계속 사용하려면 qcow2 백업 파일을 사용할 수 있습니다.

표 6. 백엔드 CIF의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdir vztmpl iso backup snippetsraw qcow2 vmdkyesqcow2qcow2

7.7.3. 예

다음을 사용하여 내보낸 CIFS 공유 목록을 얻을 수 있습니다.

# pvesm scan cifs <server> [--username <username>] [--password]

그런 다음 다음을 사용하여 이 공유를 전체 Proxmox VE 클러스터에 스토리지로 추가할 수 있습니다.

# pvesm add cifs <storagename> --server <server> --share <share> [--username <username>] [--password]

7.8. Proxmox 백업 서버

스토리지 풀 유형: pbs

이 백엔드를 사용하면 Proxmox 백업 서버를 다른 스토리지와 마찬가지로 Proxmox VE에 직접 통합할 수 있습니다. Proxmox 백업 스토리지는 Proxmox VE API, CLI 또는 웹 인터페이스를 통해 직접 추가할 수 있습니다.

7.8.1. 구성

백엔드는 항상 설정되는 공유 플래그를 제외한 모든 공통 스토리지 속성을 지원합니다. 또한 Proxmox Backup Server에 대해 다음과 같은 특수 속성을 사용할 수 있습니다.

  • server: 서버 IP 또는 DNS 이름. 필수.
  • username: Proxmox 백업 서버 저장소의 사용자 이름입니다. 필수.

팁 사용자 이름에 영역을 추가하는 것을 잊지 마십시오. 예를 들어 root@pam 또는 archiver@pbs입니다.

  • password: 사용자 비밀번호입니다. 값은 루트 사용자로 액세스가 제한된 /etc/pve/priv/storage/.pw 아래의 파일에 저장됩니다. 필수.
  • datastore: 사용할 Proxmox 백업 서버 데이터 저장소의 ID입니다. 필수.
  • fingerprint: Proxmox Backup Server API TLS 인증서의 지문입니다. 서버 대시보드에서 또는 proxmox-backup-manager cert info 명령을 사용하여 가져올 수 있습니다. 자체 서명된 인증서 또는 호스트가 서버 CA를 신뢰하지 않는 기타 인증서에 필요합니다.
  • excryption-key: 클라이언트 측에서 백업 데이터를 암호화하기 위한 키입니다. 현재는 비밀번호로 보호되지 않은 것(키 파생 기능(kdf) 없음)만 지원됩니다. 루트 사용자로 액세스가 제한된 /etc/pve/priv/storage/.enc 아래의 파일에 저장됩니다. proxmox-backup-client key create –kdf none 를 사용하여 자동으로 새 값을 생성하려면 마법 값 autogen을 사용하세요. 선택.
  • master-pubkey: 백업 작업의 일부로 백업 암호화 키를 암호화하는 데 사용되는 공개 RSA 키입니다. 암호화된 복사본은 백업에 추가되고 복구 목적으로 Proxmox Backup Server 인스턴스에 저장됩니다. 선택사항, 암호화 키가 필요합니다.

구성 예(/etc/pve/storage.cfg)

pbs: backup
        datastore main
        server enya.proxmox.com
        content backup
        fingerprint 09:54:ef:..snip..:88:af:47:fe:4c:3b:cf:8b:26:88:0b:4e:3c:b2
        prune-backups keep-all=1
        username archiver@pbs

7.8.2. 저장 기능

Proxmox Backup Server는 백업만 지원하며 블록 수준 또는 파일 수준 기반일 수 있습니다. Proxmox VE는 가상 머신에 블록 수준을 사용하고 컨테이너에 파일 수준을 사용합니다.

표 7. 백엔드 PBS의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
backupn/ayesn/an/a

7.8.3. 암호화

선택적으로 GCM 모드에서 AES-256을 사용하여 클라이언트 측 암호화를 구성할 수 있습니다. 암호화는 웹 인터페이스를 통해 구성하거나 CLI에서 암호화 키 옵션을 사용하여 구성할 수 있습니다(위 참조). 키는 루트 사용자만 액세스할 수 있는 /etc/pve/priv/storage/.enc 파일에 저장됩니다.

경고: 키가 없으면 백업에 액세스할 수 없습니다. 따라서 키를 순서대로 보관하고 백업되는 내용과 별도의 장소에 보관해야 합니다. 예를 들어 해당 시스템의 키를 사용하여 전체 시스템을 백업하는 경우가 발생할 수 있습니다. 어떤 이유로든 시스템에 액세스할 수 없게 되어 복원해야 하는 경우, 손상된 시스템과 함께 암호화 키도 손실되므로 복원이 불가능합니다.

빠른 재해 복구를 위해 키를 안전하게 보관하고 쉽게 접근할 수 있도록 하는 것이 좋습니다. 이러한 이유로 비밀번호를 저장하는 가장 좋은 장소는 즉시 복구할 수 있는 비밀번호 관리자입니다. 이에 대한 백업으로 키를 USB 플래시 드라이브에 저장하고 안전한 장소에 보관해야 합니다. 이렇게 하면 모든 시스템에서 분리되지만 긴급 상황 발생 시 쉽게 복구할 수 있습니다. 마지막으로, 최악의 시나리오에 대비하여 열쇠의 종이 사본을 안전한 곳에 보관하는 것도 고려해야 합니다. paperkey 하위 명령을 사용하여 키의 QR 인코딩 버전을 생성할 수 있습니다. 다음 명령은 쉽게 인쇄할 수 있도록 paperkey 명령의 출력을 텍스트 파일로 보냅니다.

# proxmox-backup-client 키 paperkey /etc/pve/priv/storage/<STORAGE-ID>.enc --output-format text > qrkey.txt

또한 키 복구 목적으로 단일 RSA 마스터 키 쌍을 사용할 수 있습니다. 암호화된 백업을 수행하는 모든 클라이언트가 단일 공개 마스터 키를 사용하도록 구성하면 모든 후속 암호화 백업에는 사용된 AES 암호화 키의 RSA 암호화 복사본이 포함됩니다. 해당 개인 마스터 키를 사용하면 클라이언트 시스템을 더 이상 사용할 수 없는 경우에도 AES 키를 복구하고 백업의 암호를 해독할 수 있습니다.

경고: 일반 암호화 키와 동일한 안전 유지 규칙이 마스터 키 쌍에 적용됩니다. 개인키 사본이 없으면 복구가 불가능합니다! paperkey 명령은 안전한 물리적 위치에 저장할 개인 마스터 키의 종이 복사본 생성을 지원합니다.

암호화는 클라이언트 측에서 관리되므로 암호화되지 않은 백업과 암호화된 백업에 대해 서버의 동일한 데이터 저장소를 사용할 수 있습니다. 서로 다른 키로 암호화된 경우에도 마찬가지입니다. 그러나 서로 다른 키를 사용하는 백업 간의 중복 제거는 불가능하므로 별도의 데이터 저장소를 생성하는 것이 더 나은 경우가 많습니다.

참고: 암호화를 통해 얻을 수 있는 이점이 없다면(예: 신뢰할 수 있는 네트워크에서 로컬로 서버를 실행하는 경우) 암호화를 사용하지 마십시오. 암호화되지 않은 백업에서 복구하는 것이 항상 더 쉽습니다.

7.8.4. 예: CLI를 통해 스토리지 추가

그런 다음 다음을 사용하여 이 공유를 전체 Proxmox VE 클러스터에 스토리지로 추가할 수 있습니다.

# pvesm add pbs <id> --server <server> --datastore <datastore> --username <username> --fingerprint 00:B4:... --password

7.9. GlusterFS 백엔드

스토리지 풀 유형: glusterfs

GlusterFS는 확장 가능한 네트워크 파일 시스템입니다. 이 시스템은 모듈식 설계를 사용하고 상용 하드웨어에서 실행되며 저렴한 비용으로 가용성이 높은 엔터프라이즈 스토리지를 제공할 수 있습니다. 이러한 시스템은 수 페타바이트까지 확장할 수 있으며 수천 명의 클라이언트를 처리할 수 있습니다.

참고: 노드/브릭 충돌 후 GlusterFS는 전체 rsync를 수행하여 데이터의 일관성을 확인합니다. 대용량 파일의 경우 시간이 매우 오래 걸릴 수 있으므로 이 백엔드는 대용량 VM 이미지를 저장하는 데 적합하지 않습니다.

7.9.1. 구성

백엔드는 모든 공통 스토리지 속성을 지원하고 다음 GlusterFS 관련 옵션을 추가합니다.

  • server: GlusterFS volfile 서버 IP 또는 DNS 이름입니다.
  • server2: volfile 서버 IP 또는 DNS 이름을 백업합니다.
  • volume: GlusterFS 볼륨.
  • transport: GlusterFS 전송: tcp, unix 또는 rdma

구성 예(/etc/pve/storage.cfg)

glusterfs: Gluster
        server 10.2.3.4
        server2 10.2.3.5
        volume glustervol
        content images,iso

7.9.2. 파일 명명 규칙

디렉터리 레이아웃과 파일 명명 규칙은 dir 백엔드에서 상속됩니다.

7.9.3. 스토리지 기능

스토리지는 파일 수준 인터페이스를 제공하지만 기본 스냅샷/복제 구현은 제공하지 않습니다.

표 8. 백엔드 Glusterfs의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images vztmpl iso backup snippetsraw qcow2 vmdkyesqcow2qcow2

7.10. 로컬 ZFS 풀 백엔드

스토리지 풀 유형: zfspool
이 백엔드를 사용하면 로컬 ZFS 풀(또는 해당 풀 내의 ZFS 파일 시스템)에 액세스할 수 있습니다.

7.10.1. 구성

백엔드는 공통 저장소 속성인 content, node, disable 및 다음과 같은 ZFS 관련 속성을 지원합니다.

  • pool: ZFS 풀/파일 시스템을 선택합니다. 모든 할당은 해당 풀 내에서 수행됩니다.
  • blocksize: ZFS 블록 크기 매개변수를 설정합니다.
  • sparse: ZFS 씬 프로비저닝을 사용합니다. 스파스 볼륨은 예약이 볼륨 크기와 동일하지 않은 볼륨입니다.
  • mountpoint: ZFS 풀/파일 시스템의 마운트 지점입니다. 이를 변경해도 zfs에 표시되는 데이터 세트의 mountpoint 등록 정보에는 영향을 미치지 않습니다. 기본값은 /입니다.

구성 예(/etc/pve/storage.cfg)

zfspool: vmdata
        pool tank/vmdata
        content rootdir,images
        sparse

7.10.2. 파일 명명 규칙

백엔드는 VM 이미지에 대해 다음 이름 지정 체계를 사용합니다.

vm-<VMID>-<NAME>      // normal VM images
base-<VMID>-<NAME>    // template VM image (read-only)
subvol-<VMID>-<NAME>  // subvolumes (ZFS filesystem for containers)
  • : 이는 소유자 VM을 지정합니다.
  • : 공백 없이 임의의 이름(ascii)을 사용할 수 있습니다. 백엔드는 disk[N]을 기본값으로 사용합니다. 여기서 [N]은 정수로 대체되어 이름을 고유하게 만듭니다.

7.10.3. 저장 기능

ZFS는 아마도 스냅샷 및 복제와 관련하여 가장 발전된 저장소 유형일 것입니다. 백엔드는 VM 이미지(원시 형식) 및 컨테이너 데이터(하위 볼륨 형식) 모두에 대해 ZFS 데이터 세트를 사용합니다. ZFS 속성은 상위 데이터 세트에서 상속되므로 간단하게 상위 데이터 세트에 기본값을 설정할 수 있습니다.

표 9. 백엔드 zfs의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdirraw subvolnoyesyes

7.10.4. 예

VM 이미지를 저장하기 위해 추가 ZFS 파일 시스템을 만드는 것이 좋습니다.

# zfs create tank/vmdata

새로 할당된 파일 시스템에서 압축을 활성화하려면 다음을 수행하십시오.

# zfs set compression=on tank/vmdata

다음을 사용하여 사용 가능한 ZFS 파일 시스템 목록을 얻을 수 있습니다.

# pvesm zfsscan

7.11. LVM 백엔드

스토리지 풀 유형: lvm

LVM은 하드 디스크와 파티션 위에 있는 가벼운 소프트웨어 계층입니다. 사용 가능한 디스크 공간을 더 작은 논리 볼륨으로 분할하는 데 사용할 수 있습니다. LVM은 Linux에서 널리 사용되며 하드 드라이브 관리를 더 쉽게 해줍니다.

또 다른 사용 사례는 큰 iSCSI LUN 위에 LVM을 배치하는 것입니다. 이렇게 하면 해당 iSCSI LUN의 공간을 쉽게 관리할 수 있습니다. 이는 다른 방법으로는 불가능합니다. 왜냐하면 iSCSI 사양에서는 공간 할당을 위한 관리 인터페이스를 정의하지 않기 때문입니다.

7.11.1. 구성

LVM 백엔드는 일반적인 저장소 속성인 content, node, 비활성화 및 다음과 같은 LVM 관련 속성을 지원합니다.

  • vgname: LVM 볼륨 그룹 이름. 이는 기존 볼륨 그룹을 가리켜야 합니다.
  • base: 기본 볼륨. 이 볼륨은 스토리지에 액세스하기 전에 자동으로 활성화됩니다. 이는 LVM 볼륨 그룹이 원격 iSCSI 서버에 있을 때 주로 유용합니다.
  • saferemove: 웹 UI에서는 “Wipe Removed Volumes”라고 합니다. LV 제거 시 데이터가 제로아웃됩니다. 볼륨을 제거하면 모든 데이터가 지워지고 나중에 생성된 다른 LV(동일한 물리적 확장 영역이 할당됨)에서 액세스할 수 없게 됩니다. 이는 비용이 많이 드는 작업이지만 특정 환경에서는 보안 조치로 필요할 수 있습니다.
  • saferemove_throughput: 와이프(wipe) 성능(cstream -t 매개변수 값).

구성 예(/etc/pve/storage.cfg)

lvm: myspace
        vgname myspace
        content rootdir,images

7.11.2. 파일 명명 규칙

백엔드는 기본적으로 ZFS 풀 백엔드와 동일한 명명 규칙을 사용합니다.

vm-<VMID>-<NAME> // 일반 VM 이미지

7.11.3. 저장 기능

LVM은 일반적인 블록 스토리지이지만 이 백엔드는 스냅샷과 클론을 지원하지 않습니다. 불행하게도 일반 LVM 스냅샷은 스냅샷 시간 동안 전체 볼륨 그룹의 모든 쓰기를 방해하기 때문에 매우 비효율적입니다.

한 가지 큰 장점은 iSCSI LUN과 같은 공유 스토리지 위에서 사용할 수 있다는 것입니다. 백엔드 자체는 적절한 클러스터 전체 잠금을 구현합니다.

팁: 최신 LVM 씬 백엔드는 스냅샷 및 복제를 허용하지만 공유 스토리지는 지원하지 않습니다.

표 10. 백엔드 lvm의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdirrawpossiblenono

7.11.4. 예

사용 가능한 볼륨 그룹을 나열합니다.

# pvesm lvmscan

7.12. LVM 씬 백엔드

스토리지 풀 유형: lvmthin

LVM은 일반적으로 볼륨을 생성할 때 블록을 할당합니다. 대신 LVM 씬 풀은 기록될 때 블록을 할당합니다. 볼륨이 물리적으로 사용 가능한 공간보다 훨씬 클 수 있기 때문에 이 동작을 씬 프로비저닝이라고 합니다.

일반 LVM 명령줄 도구를 사용하여 LVM 씬 풀을 관리하고 생성할 수 있습니다(자세한 내용은 man lvmthin 참조). pve라는 LVM 볼륨 그룹이 이미 있다고 가정하고 다음 명령을 사용하면 data라는 새 LVM 씬 풀(크기 100G)이 생성됩니다.

lvcreate -L 100G -n data pve
lvconvert --type thin-pool pve/data

7.12.1. 구성

LVM 씬 백엔드는 공통 스토리지 속성인 content, node, 비활성화 및 다음과 같은 LVM 특정 속성을 지원합니다.

  • vgname: LVM 볼륨 그룹 이름. 이는 기존 볼륨 그룹을 가리켜야 합니다.
  • thinpool: LVM 씬 풀의 이름입니다.

구성 예(/etc/pve/storage.cfg)

lvmthin: local-lvm
        thinpool data
        vgname pve
        content rootdir,images

7.12.2. 파일 명명 규칙

백엔드는 기본적으로 ZFS 풀 백엔드와 동일한 명명 규칙을 사용합니다.

vm-<VMID>-<NAME> // 일반 VM 이미지

7.12.3. 저장 기능

LVM 씬은 블록 스토리지이지만 스냅샷과 클론을 효율적으로 완벽하게 지원합니다. 새 볼륨은 자동으로 0으로 초기화됩니다.

LVM 씬 풀은 여러 노드에서 공유할 수 없으므로 로컬 스토리지로만 사용할 수 있다는 점을 언급해야 합니다.

표 11. 백엔드 lvmthin의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdirrawnoyesyes

7.12.4. 예

볼륨 그룹 pve에서 사용 가능한 LVM 씬 풀을 나열합니다.

# pvesm lvmthinscan pve

7.13. Open-iSCSI 개시자
스토리지 풀 유형: iscsi

iSCSI는 스토리지 서버에 연결하는 데 널리 사용되는 기술입니다. 거의 모든 스토리지 공급업체가 iSCSI를 지원합니다. 오픈 소스 iSCSI 대상 솔루션도 사용할 수 있습니다. OpenMediaVault는 Debian을 기반으로 합니다.

이 백엔드를 사용하려면 Open-iSCSI(open-iscsi) 패키지를 설치해야 합니다. 이것은 표준 데비안 패키지이지만 리소스를 절약하기 위해 기본적으로 설치되지 않습니다.

# apt-get install open-iscsi

iscsiadm 도구를 사용하여 낮은 수준의 iscsi 관리 작업을 수행할 수 있습니다.

7.13.1. 구성

백엔드는 일반적인 스토리지 속성인 콘텐츠, 노드, 비활성화 및 다음과 같은 iSCSI 특정 속성을 지원합니다.

  • portal: iSCSI 포털(옵션 포트가 있는 IP 또는 DNS 이름)
  • target: iSCSI 대상.

구성 예(/etc/pve/storage.cfg)

iscsi: mynas
     portal 10.10.10.1
     target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd
     content none

팁: iSCSI 위에서 LVM을 사용하려면 content none을 설정하는 것이 좋습니다. 이렇게 하면 iSCSI LUN을 직접 사용하여 VM을 생성할 수 없습니다.

7.13.2. 파일 명명 규칙

iSCSI 프로토콜은 데이터를 할당하거나 삭제하는 인터페이스를 정의하지 않습니다. 대신, 이는 대상 측에서 수행되어야 하며 공급업체에 따라 다릅니다. 대상은 이를 번호가 매겨진 LUN으로 내보냅니다. 따라서 Proxmox VE iSCSI 볼륨 이름은 Linux 커널에서 볼 수 있는 LUN에 대한 일부 정보를 인코딩합니다.

7.13.3. 저장 기능

iSCSI는 블록 수준 유형의 스토리지이며 관리 인터페이스를 제공하지 않습니다. 따라서 일반적으로 하나의 큰 LUN을 내보내고 해당 LUN 위에 LVM을 설정하는 것이 가장 좋습니다. 그런 다음 LVM 플러그인을 사용하여 해당 iSCSI LUN의 스토리지를 관리할 수 있습니다.

표 12. 백엔드 iscsi의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images nonerawyesnono

7.13.4. 예

원격 iSCSI 포털을 스캔하고 가능한 대상 목록을 반환합니다.

pvesm scan iscsi <HOST[:PORT]>

7.14. 사용자 모드 iSCSI 백엔드

스토리지 풀 유형: iscsidirect

이 백엔드는 기본적으로 Open-iSCSI 지원과 동일한 기능을 제공하지만 이를 구현하기 위해 사용자 수준 라이브러리를 사용합니다. 이 백엔드를 사용하려면 libiscsi-bin 패키지를 설치해야 합니다.

관련된 커널 드라이버가 없으므로 이는 성능 최적화로 볼 수 있습니다. 그러나 이는 그러한 iSCSI LUN 위에 LVM을 사용할 수 없다는 단점이 있습니다. 따라서 스토리지 서버 측에서 모든 공간 할당을 관리해야 합니다.

7.14.1. 구성

사용자 모드 iSCSI 백엔드는 Open-iSCSI 지원과 동일한 구성 옵션을 사용합니다.

구성 예(/etc/pve/storage.cfg)

iscsidirect: faststore
     portal 10.10.10.1
     target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd

7.14.2. 저장 기능

참고: 이 백엔드는 VM에서만 작동합니다. 컨테이너는 이 드라이버를 사용할 수 없습니다.

표 13. 백엔드 iscsidirect의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
imagesrawyesnono

7.15. Ceph RADOS 블록 장치(RBD)

스토리지 풀 유형: rbd

Ceph는 탁월한 성능, 안정성 및 확장성을 제공하도록 설계된 분산 개체 저장소 및 파일 시스템입니다. RADOS 블록 장치는 기능이 풍부한 블록 수준 스토리지를 구현하며 다음과 같은 이점을 얻습니다.

  • 씬 프로비저닝
  • 크기 조정 가능한 볼륨
  • 분산 및 중복(여러 OSD에 스트라이프됨)
  • 전체 스냅샷 및 복제 기능
  • 자가 치유
  • 단일 실패 지점 없음
  • 엑사바이트 수준으로 확장 가능
  • 커널 및 사용자 공간 구현 가능

참고: 소규모 배포의 경우 Proxmox VE 노드에서 직접 Ceph 서비스를 실행할 수도 있습니다. 최신 하드웨어에는 충분한 CPU 성능과 RAM이 있으므로 동일한 노드에서 스토리지 서비스와 VM을 실행하는 것이 가능합니다.

7.15.1. 구성

이 백엔드는 공통 스토리지 속성인 노드, 비활성화, 콘텐츠 및 다음 rbd 관련 속성을 지원합니다.

  • monhost: 모니터 데몬 IP 목록입니다. 선택 사항이며 Ceph가 Proxmox VE 클러스터에서 실행되지 않는 경우에만 필요합니다.
  • pool: Ceph 풀 이름입니다.
  • username: RBD 사용자 ID입니다. 선택 사항이며 Ceph가 Proxmox VE 클러스터에서 실행되지 않는 경우에만 필요합니다. 사용자 ID만 사용해야 한다는 점에 유의하세요. “client” 유형 접두사는 생략되어야 합니다.
  • krbd: krbd 커널 모듈을 통해 rados 블록 장치에 대한 액세스를 적용합니다. 선택.

참고: 컨테이너는 옵션 값과 관계없이 krbd를 사용합니다.

외부 Ceph 클러스터에 대한 구성 예(/etc/pve/storage.cfg)

rbd: ceph-external
        monhost 10.1.1.20 10.1.1.21 10.1.1.22
        pool ceph-external
        content images
        username admin

팁: rbd 유틸리티를 사용하여 낮은 수준의 관리 작업을 수행할 수 있습니다.

7.15.2. 인증

참고: Ceph가 Proxmox VE 클러스터에 로컬로 설치된 경우 스토리지를 추가할 때 다음 작업이 자동으로 수행됩니다.

기본적으로 활성화되는 cephx 인증을 사용하는 경우 외부 Ceph 클러스터에서 키링을 제공해야 합니다.

CLI를 통해 스토리지를 구성하려면 먼저 키링이 포함된 파일을 사용 가능하게 만들어야 합니다. 한 가지 방법은 외부 Ceph 클러스터의 파일을 Proxmox VE 노드 중 하나로 직접 복사하는 것입니다. 다음 예에서는 이를 실행하는 노드의 /root 디렉터리에 복사합니다.

# scp <external cephserver>:/etc/ceph/ceph.client.admin.keyring /root/rbd.keyring

그런 다음 pvesm CLI 도구를 사용하여 외부 RBD 스토리지를 구성하고 –keyring 매개변수를 사용합니다. 이 매개변수는 복사한 키링 파일의 경로여야 합니다. 예를 들어:

# pvesm add rbd <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content images --keyring /root/rbd.keyring

GUI를 통해 외부 RBD 스토리지를 구성할 때 키링을 복사하여 해당 필드에 붙여넣을 수 있습니다.
키링은 다음 위치에 저장됩니다.

# /etc/pve/priv/ceph/<STORAGE_ID>.keyring

팁: 외부 클러스터에 연결할 때 필요한 기능만 포함된 키링을 생성하는 것이 좋습니다. Ceph 사용자 관리에 대한 자세한 내용은 Ceph 문서를 참조하세요.[12]

7.15.3. Ceph 클라이언트 구성(선택 사항)

외부 Ceph 스토리지에 연결할 때 항상 외부 클러스터의 구성 DB에서 클라이언트별 옵션을 설정할 수 있는 것은 아닙니다. Ceph 키링 옆에 ceph.conf를 추가하여 스토리지에 대한 Ceph 클라이언트 구성을 변경할 수 있습니다.

ceph.conf의 이름은 저장소와 동일해야 합니다.

# /etc/pve/priv/ceph/<STORAGE_ID>.conf

가능한 설정은 RBD 구성 참조 [13]를 참조하세요.

참고: 이 설정을 가볍게 변경하지 마십시오. Proxmox VE는.conf를 스토리지 구성과 병합하고 있습니다.

7.15.4. 저장 기능

rbd 백엔드는 블록 수준 스토리지이며 전체 스냅샷 및 복제 기능을 구현합니다.

표 14. 백엔드 rbd의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
images rootdirrawyesyesyes

7.16. Ceph 파일 시스템(CephFS)

스토리지 풀 유형: cephfs

CephFS는 Ceph 스토리지 클러스터를 사용하여 데이터를 저장하는 POSIX 호환 파일 시스템을 구현합니다. CephFS는 Ceph를 기반으로 구축되므로 대부분의 속성을 공유합니다. 여기에는 중복성, 확장성, 자가 복구 및 고가용성이 포함됩니다.

팁: Proxmox VE는 Ceph 설정을 관리할 수 있으므로 CephFS 스토리지를 더 쉽게 구성할 수 있습니다. 최신 하드웨어는 많은 처리 능력과 RAM을 제공하므로 성능에 큰 영향을 주지 않고 동일한 노드에서 스토리지 서비스와 VM을 실행할 수 있습니다.

CephFS 스토리지 플러그인을 사용하려면 Ceph 저장소를 추가하여 기본 Debian Ceph 클라이언트를 교체해야 합니다. 추가한 후에는 apt update를 실행한 다음 apt dist-upgrade를 실행하여 최신 패키지를 얻으세요.

경고: 다른 Ceph 리포지토리가 구성되어 있지 않은지 확인하십시오. 그렇지 않으면 설치가 실패하거나 노드에 혼합 패키지 버전이 있어 예기치 않은 동작이 발생합니다.

7.16.1. 구성

이 백엔드는 공통 스토리지 속성인 노드, 비활성화, 콘텐츠뿐만 아니라 다음과 같은 cephfs 관련 속성도 지원합니다.

  • fs-name: Ceph FS의 이름입니다.
  • monhost: 모니터 데몬 주소 목록입니다. 선택 사항이며 Ceph가 Proxmox VE 클러스터에서 실행되지 않는 경우에만 필요합니다.
  • path: 로컬 마운트 지점. 선택사항, 기본값은 /mnt/pve//입니다.
  • username: Ceph 사용자 ID입니다. 선택 사항. Ceph가 Proxmox VE 클러스터에서 실행되고 있지 않은 경우에만 필요하며 기본값은 admin입니다.
  • subdir: 마운트할 CephFS 하위 디렉터리입니다. 선택 사항이며 기본값은 /입니다.
  • fuse: 커널 클라이언트 대신 FUSE를 통해 CephFS에 액세스합니다. 선택 사항이며 기본값은 0입니다.

외부 Ceph 클러스터(/etc/pve/storage.cfg)에 대한 구성 예

cephfs: cephfs-external
        monhost 10.1.1.20 10.1.1.21 10.1.1.22
        path /mnt/pve/cephfs-external
        content backup
        username admin
        fs-name cephfs

참고: cephx가 비활성화되지 않은 경우 클라이언트의 비밀 키 파일을 설정하는 것을 잊지 마십시오.

7.16.2. 입증

참고: Ceph가 Proxmox VE 클러스터에 로컬로 설치된 경우 스토리지를 추가할 때 다음 작업이 자동으로 수행됩니다.

기본적으로 활성화되는 cephx 인증을 사용하는 경우 외부 Ceph 클러스터의 비밀을 제공해야 합니다.

CLI를 통해 스토리지를 구성하려면 먼저 보안 비밀이 포함된 파일을 사용 가능하게 만들어야 합니다. 한 가지 방법은 외부 Ceph 클러스터의 파일을 Proxmox VE 노드 중 하나로 직접 복사하는 것입니다. 다음 예에서는 이를 실행하는 노드의 /root 디렉터리에 복사합니다.

# scp <external cephserver>:/etc/ceph/cephfs.secret /root/cephfs.secret

그런 다음 pvesm CLI 도구를 사용하여 외부 RBD 스토리지를 구성하고 –keyring 매개변수를 사용합니다. 이 매개변수는 복사한 비밀 파일의 경로여야 합니다. 예를 들어:

# pvesm add cephfs <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content backup --keyring /root/cephfs.secret

GUI를 통해 외부 RBD 스토리지를 구성할 때 비밀을 복사하여 해당 필드에 붙여넣을 수 있습니다.

[client.userid] 섹션도 포함하는 rbd 백엔드와 달리 비밀은 키 자체입니다.

비밀은 다음 위치에 저장됩니다.

# /etc/pve/priv/ceph/<STORAGE_ID>.secret

아래 명령을 실행하여 Ceph 클러스터(Ceph 관리자로)에서 비밀을 수신할 수 있습니다. 여기서 userid는 클러스터에 액세스하도록 구성된 클라이언트 ID입니다. Ceph 사용자 관리에 대한 자세한 내용은 Ceph 문서를 참조하세요.[12]

# ceph auth get-key client.userid > cephfs.secret

7.16.3. 저장 기능

cephfs 백엔드는 Ceph 클러스터 위에 있는 POSIX 호환 파일 시스템입니다.

표 15. 백엔드 cephf의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
vztmpl iso backup snippetsnoneyesyes[1]no
[1] 알려진 버그는 없지만 충분한 테스트가 부족하여 스냅샷의 안정성이 아직 보장되지 않습니다.

7.17. BTRFS 백엔드

스토리지 풀 유형: btrfs

표면적으로 이 저장소 유형은 디렉터리 저장소 유형과 매우 유사하므로 일반적인 개요는 디렉터리 백엔드 섹션을 참조하세요.

주요 차이점은 이 스토리지 유형을 사용하면 스냅샷을 찍고 스냅샷을 보존하면서 오프라인 스토리지 마이그레이션을 지원하기 위해 원시 포맷된 디스크가 하위 볼륨에 배치된다는 것입니다.

참고: BTRFS는 파일을 열 때 O_DIRECT 플래그를 준수합니다. 즉, VM은 캐시 모드 없음을 사용해서는 안 됩니다. 그렇지 않으면 체크섬 오류가 발생합니다.

7.17.1. 구성

이 백엔드는 디렉터리 저장소와 유사하게 구성됩니다. 자체적으로 마운트 지점이 아닌 BTRFS 저장소로 디렉터리를 추가하는 경우 is_mountpoint 옵션을 통해 실제 마운트 지점을 지정하는 것이 좋습니다.

예를 들어 BTRFS 파일 시스템이 /mnt/data2에 마운트되고 해당 pve-storage/ 하위 디렉터리(권장되는 스냅샷일 수 있음)를 data2라는 스토리지 풀로 추가해야 하는 경우 다음 항목을 사용할 수 있습니다.

btrfs: data2
        path /mnt/data2/pve-storage
        content rootdir,images
        is_mountpoint /mnt/data2

7.17.2. 스냅샷

하위 볼륨 또는 원시 파일의 스냅샷을 생성할 때 스냅샷은 동일한 경로 뒤에 @ 및 스냅샷 이름이 오는 읽기 전용 하위 볼륨으로 생성됩니다.

7.18. ZFS over iSCSI 백엔드

스토리지 풀 유형: zfs
이 백엔드는 스토리지로 ZFS 풀이 있고 SSH를 통해 iSCSI 대상 구현이 있는 원격 시스템에 액세스합니다. 각 게스트 디스크에 대해 ZVOL을 생성하고 이를 iSCSI LUN으로 내보냅니다. 이 LUN은 Proxmox VE에서 게스트 디스크로 사용됩니다.
다음 iSCSI 대상 구현이 지원됩니다.

  • LIO(Linux)
  • IET(Linux)
  • ISTGT(FreeBSD)
  • Comstar(Solaris)

참고: 이 플러그인에는 ZFS 가능 원격 스토리지 어플라이언스가 필요하며 이를 사용하여 일반 스토리지 어플라이언스/SAN에서 ZFS 풀을 생성할 수 없습니다.

7.18.1. 구성

ZFS over iSCSI 플러그인을 사용하려면 Proxmox VE 노드에서 SSH 연결을 허용하도록 원격 시스템(대상)을 구성해야 합니다. Proxmox VE는 ZVOL을 생성하고 iSCSI를 통해 내보내기 위해 대상에 연결합니다. 인증은 /etc/pve/priv/zfs/_id_rsa에 저장된 SSH 키(비밀번호 보호 없음)를 통해 수행됩니다.

다음 단계에서는 SSH 키를 생성하고 이를 IP 192.0.2.1의 스토리지 머신에 배포합니다.

mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/192.0.2.1_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/192.0.2.1_id_rsa.pub root@192.0.2.1
ssh -i /etc/pve/priv/zfs/192.0.2.1_id_rsa root@192.0.2.1

백엔드는 공통 스토리지 속성 content, nodes, disable 및 ISCSI를 통한 다음 ZFS 특정 속성을 지원합니다.

  • pool: iSCSI 대상의 ZFS 풀/파일 시스템입니다. 모든 할당은 해당 풀 내에서 수행됩니다.
  • portal: iSCSI 포털(옵션 포트가 있는 IP 또는 DNS 이름)
  • target: iSCSI 대상
  • iscsiprovider: 원격 시스템에 사용되는 iSCSI 대상 구현
  • comstar_tg: comstar 뷰의 대상 그룹입니다.
  • comstar_hg: comstar 보기의 호스트 그룹입니다.
  • lio_tpg: Linux LIO 대상용 대상 포털 그룹
  • nowritecache: 대상에서 쓰기 캐싱을 비활성화합니다.
  • blocksize: ZFS 블록 크기 매개변수를 설정합니다.
  • sparse: ZFS 씬 프로비저닝을 사용합니다. 스파스 볼륨은 예약이 볼륨 크기와 동일하지 않은 볼륨입니다.

구성 예(/etc/pve/storage.cfg)

zfs: lio
   blocksize 4k
   iscsiprovider LIO
   pool tank
   portal 192.0.2.111
   target iqn.2003-01.org.linux-iscsi.lio.x8664:sn.xxxxxxxxxxxx
   content images
   lio_tpg tpg1
   sparse 1

zfs: solaris
   blocksize 4k
   target iqn.2010-08.org.illumos:02:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:tank1
   pool tank
   iscsiprovider comstar
   portal 192.0.2.112
   content images

zfs: freebsd
   blocksize 4k
   target iqn.2007-09.jp.ne.peach.istgt:tank1
   pool tank
   iscsiprovider istgt
   portal 192.0.2.113
   content images

zfs: iet
   blocksize 4k
   target iqn.2001-04.com.example:tank1
   pool tank
   iscsiprovider iet
   portal 192.0.2.114
   content images

7.18.2. 저장 기능

ZFS over iSCSI 플러그인은 스냅샷이 가능한 공유 저장소를 제공합니다. ZFS 어플라이언스가 배포 시 단일 실패 지점이 되지 않도록 해야 합니다.

표 16. 백엔드 iscsi의 스토리지 기능

Content typesImage formatsSharedSnapshotsClones
imagesrawyesyesno
답글 남기기

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

You May Also Like