자습서 - Azure CLI를 사용하여 Azure 디스크 관리

적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합

Azure VM(가상 머신)은 디스크를 사용하여 운영 체제, 애플리케이션 및 데이터를 저장합니다. VM을 만들 때 예상되는 워크로드에 적합한 디스크 크기와 구성을 선택하는 것이 중요합니다. 이 자습서에서는 VM 디스크를 배포하고 관리하는 방법을 보여줍니다. 다음 항목에 대해 알아봅니다.

  • OS 디스크 및 임시 디스크
  • 데이터 디스크
  • 디스크 유형 및 성능 옵션
  • 디스크 성능
  • 데이터 디스크 연결 및 준비
  • 디스크 스냅샷

기본 Azure 디스크

Azure Virtual Machine을 만들면 두 개의 디스크가 자동으로 가상 머신에 연결됩니다.

운영 체제 디스크 - 운영 체제(OS) 디스크는 VM 운영 체제를 호스트하며 최대 4,095gibibytes(GiB)일 수 있지만 대부분의 운영 체제는 기본적으로 MBR(마스터 부팅 레코드) 으로 분할됩니다. MBR은 사용 가능한 크기를 2TiB로 제한합니다. 2TiB 이상이 필요한 경우 데이터 디스크를 만들어 연결하여 데이터 스토리지에 사용합니다. 디바이스 이름은 VM 생성 및 디스크 컨트롤러 유형에 따라 다르므로 /dev/sda와 같은 고정 경로를 사용하지 마세요. OS 디스크 캐싱은 OS 성능에 최적화되어 있으므로 OS 디스크에 애플리케이션 데이터를 저장하지 마세요. 애플리케이션 및 데이터 스토리지에 데이터 디스크를 사용합니다.

형 디스크 - 임시 스토리지는 VM과 동일한 Azure 호스트의 로컬 스토리지를 사용합니다. VM 크기 및 생성에 따라 이 스토리지는 임시 디스크 또는 로컬 NVMe 디스크로 표시될 수 있습니다. 고성능이지만 비영구적입니다. VM이 새 호스트로 이동되면 임시 스토리지의 데이터가 제거됩니다. 사용 가능한 크기는 VM 크기에 따라 달라집니다.

데이터 디스크

애플리케이션을 설치하고 데이터를 저장하기 위해 추가 데이터 디스크를 추가할 수 있습니다. 데이터 디스크는 지속형 및 반응형 데이터 스토리지가 필요한 상황에 사용해야 합니다. 가상 컴퓨터의 크기에 따라 VM에 연결할 수 있는 데이터 디스크 수가 결정됩니다.

VM 디스크 유형

Azure 관리 디스크는 5가지 디스크 유형을 제공합니다.

일반적으로 프로덕션 워크로드에 프리미엄 SSD v2 또는 프리미엄 SSD, 개발/테스트용 표준 SSD 및 성능에 덜 민감한 워크로드, IO 집약적 데이터 워크로드에 Ultra Disks를 사용합니다. Ultra Disks 및 Premium SSD v2는 데이터 디스크 전용 옵션이며 OS 디스크로 사용할 수 없습니다. 자세한 제한, 지역 가용성 및 크기 조정 지침은 Azure 관리 디스크 유형 참조하세요.

Azure Cloud Shell 시작

Azure Cloud Shell은 이 문서의 단계를 실행하는 데 무료로 사용할 수 있는 대화형 셸입니다. 여기에는 계정과 함께 사용하도록 미리 설치되고 구성된 일반적인 Azure 도구가 있습니다.

Cloud Shell 열려면 코드 블록의 오른쪽 위 모서리에서 시도를 선택합니다. https://shell.azure.com 별도의 브라우저 탭에서 Cloud Shell 시작할 수도 있습니다. Copy를 선택하여 코드 블록을 복사하고, Cloud Shell 붙여넣고, Enter 키를 눌러 실행합니다.

디스크 만들기 및 연결

VM을 만들 때 또는 기존 VM에 데이터 디스크를 만들고 연결할 수 있습니다.

VM을 만들 때 디스크 연결

az group create 명령을 사용하여 리소스 그룹을 만듭니다.

az group create --name myResourceGroupDisk --location eastus

az vm create 명령을 사용하여 VM을 만듭니다. 다음 예제에서는 myVM이라는 VM을 만들고, azureuser라는 사용자 계정을 추가하고, SSH 키가 아직 없는 경우 생성합니다. 인수는 --data-disk-sizes-gb 만들고 연결할 추가 데이터 디스크를 지정합니다. 둘 이상의 디스크를 만들고 연결하려면 공백으로 구분된 디스크 크기 목록을 사용합니다. 다음 예제에서는 128GB 데이터 디스크 두 개가 있는 VM을 만듭니다. 디스크 크기가 128GB이므로 이러한 디스크는 모두 디스크당 최대 500 IOPS를 제공하는 P10으로 구성됩니다.

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

기존 VM에 디스크 연결

기존 가상 머신에 새 디스크를 만들고 연결하려면 az vm disk attach 명령을 사용합니다. 다음 예제에서는 크기가 128GB인 프리미엄 디스크를 만들고 마지막 단계에서 만든 VM에 연결합니다.

az vm disk attach \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name myDataDisk \
    --size-gb 128 \
    --sku Premium_LRS \
    --new

데이터 디스크 준비

디스크가 가상 머신에 연결된 후 디스크를 사용하도록 운영 체제를 구성해야 합니다. 다음 예제에는 디스크를 수동으로 구성하는 방법을 보여 줍니다. 이 프로세스는 cloud-init를 사용하여 자동화할 수도 있으며 여기에 대해서는 이후의 자습서에서 다룹니다.

가상 머신과 SSH 연결 만들기 예제 IP 주소를 가상 머신의 공용 IP로 바꿉니다.

ssh azureuser@10.101.10.10

parted를 사용하여 디스크를 분할합니다.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

mkfs 명령을 사용하여 파티션에 파일 시스템을 씁니다. partprobe를 사용하여 OS가 변경 내용을 인식하도록 합니다.

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

운영 체제에서 액세스할 수 있도록 새 디스크를 탑재합니다.

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

이제 /datadrive 탑재 지점을 통해 디스크에 액세스할 수 있으며 df -h 명령을 실행하여 확인할 수 있습니다.

df -h | grep -i "sd"

출력에 /datadrive에 탑재된 새 드라이브가 표시됩니다.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

다시 부팅 후 드라이브가 다시 탑재되도록 하려면 /etc/fstab 파일에 추가해야 합니다. 이렇게 하려면 blkid 유틸리티를 사용하여 디스크의 UUID를 가져옵니다.

sudo -i blkid

출력에 드라이브의 UUID가 표시됩니다(이 경우 /dev/sdc1).

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"

비고

/etc/fstab 파일을 부적절하게 편집하면 부팅할 수 없는 시스템이 발생할 수 있습니다. 확실하지 않은 경우 배포판의 설명서에서 이 파일을 올바르게 편집하는 방법에 대한 자세한 내용을 확인하세요. 또한 편집하기 전에 /etc/fstab 파일의 백업을 만드는 것이 좋습니다.

텍스트 편집기에서 다음과 같이 /etc/fstab 파일을 엽니다.

sudo nano /etc/fstab

/etc/fstab 파일에 다음과 유사한 줄을 추가하여 UUID 값을 사용자 고유의 값으로 바꿉니다.

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  xfs    defaults,nofail   1  2

파일 편집이 완료되면 Ctrl+O를 사용하여 파일을 작성하고 Ctrl+X를 사용하여 편집기를 종료합니다.

이제 디스크가 구성되었으니 SSH 세션을 닫습니다.

exit

디스크 스냅샷 만들기

디스크 스냅샷을 만들 때 Azure 디스크의 읽기 전용 지정 시간 복사본을 만듭니다. Azure VM 스냅샷은 구성을 변경하기 전에 VM의 상태를 신속하게 저장하는 데 유용합니다. 문제 또는 오류가 발생할 경우 스냅샷을 사용하여 VM을 복원할 수 있습니다. VM에 둘 이상의 디스크가 있는 경우 각 디스크에 대해 독립적으로 스냅샷이 생성됩니다. 애플리케이션 일치 백업을 수행하려면 디스크 스냅샷을 만들기 전에 VM을 중지하는 것이 좋습니다. 또는 VM이 실행되는 동안 자동화된 백업을 지원하는 Azure Backup 사용합니다.

스냅샷 만들기

스냅샷을 만들기 전에 디스크의 ID 또는 이름이 필요합니다. az vm show를 사용하여 디스크 ID를 표시합니다. 이 예제에서는 디스크 ID가 변수에 저장되고 이후 단계에서 사용될 수 있습니다.

osdiskid=$(az vm show \
   -g myResourceGroupDisk \
   -n myVM \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)

이제 ID가 생겼으니 az snapshot create를 사용하여 디스크의 스냅샷을 생성합니다.

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

스냅샷에서 디스크 만들기

그런 다음, az disk create를 사용하여 스냅샷을 디스크로 복원하여 가상 머신을 다시 만드는 데 사용할 수 있습니다.

az disk create \
   --resource-group myResourceGroupDisk \
   --name mySnapshotDisk \
   --source osDisk-backup

스냅샷에서 가상 머신 복원

가상 머신 복구를 시연하려면 az vm delete를 사용하여 기존의 가상 머신을 삭제합니다.

az vm delete \
--resource-group myResourceGroupDisk \
--name myVM

스냅샷 디스크에서 새 가상 머신을 만듭니다.

az vm create \
    --resource-group myResourceGroupDisk \
    --name myVM \
    --attach-os-disk mySnapshotDisk \
    --os-type linux

데이터 디스크 다시 연결

모든 데이터 디스크를 가상 머신에 다시 연결해야 합니다.

az disk list 명령을 사용하여 데이터 디스크 이름을 찾습니다. 이 예제에서는 datadisk라는 변수에 디스크의 이름을 추가합니다. 이 변수는 다음 단계에서 사용됩니다.

datadisk=$(az disk list \
   -g myResourceGroupDisk \
   --query "[?contains(name,'myVM')].[id]" \
   -o tsv)

az vm disk attach 명령을 사용하여 디스크를 연결합니다.

az vm disk attach \
   --resource-group myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

다음 단계

이 자습서에서는 다음과 같은 VM 디스크 항목에 대해 알아보았습니다.

  • OS 디스크 및 임시 디스크
  • 데이터 디스크
  • 디스크 유형 및 성능 옵션
  • 디스크 성능
  • 데이터 디스크 연결 및 준비
  • 디스크 스냅샷

VM 구성 자동화에 대해 자세히 알아보려면 다음 자습서로 이동합니다.