*글 최초 발행일자: 2018.04.30*
가상 머신(VM)에 장애나 보안 사고 등 복잡한 문제가 생기면? 기존 환경을 지우고 운영체제를 다시 설치하거나, 백업본을 불러와 복원을 합니다. 마이크로소프트 애저(Azure) 환경에서는 이게 매우 간단합니다. 애저에서 매니지드 가상 머신을 사용하는 경우 VM에 치명적인 문제가 발생했을 때 VM을 지울 필요 없이 간단하게 OS 디스크만 바꾸어 주면 됩니다. 이 기능의 정식 명칭은 'OS Disk Swap'인데요, 말 그대로 OS 디스크를 바꾸어 주는 기능입니다.
이 기능을 이용하면 VM을 삭제하지 않고 이전에 백업 받아 둔 OS 디스크를 간단히 복원할 수 있고, 필요에 따라 새로운 OS 디스크 이미지를 쉽게 연결할 수 있습니다. 이 기능을 쓰려면 VM을 잠시 멈추고 매니지드 OS 디스크의 리소스 ID만 바꾸면 됩니다. 제약이 있는데, 당연한 말이지만 리눅스가 설치된 OS 디스크를 윈도우가 설치된 것으로 바꿀 수는 없습니다. 간단히 디스크 OS를 바꾸는 방법을 소개합니다.
애저 CLI를 이용할 경우 다음과 같이 하면 됩니다. 참고로 애저 CLI 버전은 2.0.25 이상이어야 합니다.
az vm update –g osrg -n vm2 --os-disk /subscriptions/<sub-id>/resourceGroups/osrg/providers/Microsoft.Compute/disks/osbackup
파워쉘을 이용할 때는 다음과 같이 합니다.
$vm = Get-AzureRmVM -ResourceGroupName osrg -Name vm2 $disk = Get-AzureRmDisk -ResourceGroupName osrg -Name osbackup Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -Name $disk.NameUpdate-AzureRmVM -ResourceGroupName osrg -VM $vm
자바 SDK를 이용한 예는 다음과 같습니다.
VirtualMachine virtualMachine = azure.virtualMachines().getById("<vm_id>");
virtualMachine .inner() .storageProfile() .osDisk() .withName("<disk-name>") .managedDisk() .withId("<disk_resource_id>"); virtualMachine.update() .apply();
다음은 GO SDK를 사용한 예입니다.
func UpdateVM(ctx context.Context, vmName string, diskId string, diskName string) (vm compute.VirtualMachine, err error) {
vm, err = GetVM(ctx, vmName) if err != nil { return } vm.VirtualMachineProperties.StorageProfile.OSDisk.Name = diskName vm.VirtualMachineProperties.StorageProfile.ManagedDisk.Id = diskId vmClient := getVMClient() future, err := vmClient.CreateOrUpdate(ctx, helpers.ResourceGroupName(), vmName, vm) if err != nil { return vm, fmt.Errorf("cannot update vm: %v", err) } err = future.WaitForCompletion(ctx, vmClient.Client) if err != nil { return vm, fmt.Errorf("cannot get the vm create or update future response: %v", err) } return future.Result(vmClient) }
*이 외에도 락플레이스의 최신 뉴스레터 소식(2021~) 을 받아보고 싶으시다면? *
*락플레이스 1:1 문의 바로가기*
락플레이스는 2005년에 출범하여 대한민국 리눅스의 역사와 성장을 함께 해온 오픈소스 전문 기업으로 국내 최다 엔지니어, 국내 최고 기술력, 국내외 유수기업 컨설팅의 풍부한 경험과 탄탄한 기술력으로 고객의 성공적인 오픈소스 플랫폼 구축과 응용 프로그램 전체 범위의 서비스를 제공하고 있습니다. 락플레이스는 레드햇코리아로부터 Elite Business Associate/Advanced Business Parter/채널 어워드 한국 탑 파트너/FY15 champion 등을 수상한 파트너며, Microsoft의 Microsoft Cloud Solution Partner(CSP)로서 함께하고 있습니다.
'OSS on Azure > 클라우드 운영 팁' 카테고리의 다른 글
클라우드 운영 팁 인공 지능이 내가 찾는 클라우드 문서를 알아서 추천 ~ 왠지 낯설지 않은 서비스 이름 '알라딘(Aladdin)' (0) | 2021.03.25 |
---|---|
오호라 ~ 애플리케이션 성능 확인을 VM에 연결된 디스크 수준에서 확인해 볼 수 있구나 ~ (0) | 2021.03.25 |
플랫폼 IoT 장치/태그가 쏟아내는 시계열 데이터, 이제 비용 걱정 없이 오래오래 보관이 가능 - 머신 러닝 좀 해볼 만 하겠네... (0) | 2021.03.24 |
35미리 비디오 카세트에 담긴 영상, 테이프에 저장한 백업 데이터, SAN이나 NAS에 있는 데이터를 Azure로 올리면 좋은 점!! (0) | 2021.03.23 |
VM웨어 가상 머신과 그 위에 올린 워크로드를 애저로 옮겨보자! (0) | 2021.03.23 |