JINIers
GCP 부팅디스크 분리 및 VM 복제 본문
부제: 비선점형 인스턴스에 사용하던 파일&내용을 그대로 옮기고 싶다면(vm 복제)
인스턴스들을 구성하다가 vm 으로 인해 비용이 너무 많이 청구되는 사태가 발생하였다.
상시로 돌아가는 인스턴스를 제외한 나머지, 즉 사용하지 않는, test용인, 쓰다 만 vm 인스턴스들
vm 내의 파일들은 필요하나 vm을 구동할 필요는 없는 그런..것들을 비용이 많이 나오니까 전부 선점형으로 바꾸라고 하셨다. 그래서 생각한게
1. vm을 그냥 복제하자 : vm create similar 하면 되겠지
▶ 개같이 멸망, error남
2. vm을 image를 뜬 뒤 create 하자.
순서
- 복제할 머신 이미지 생성
- create similar
- snap shoot image → vm create
- 선점형으로 설정
▶ 역시나 개같이 멸망 error
error : Invalid value for field 'resource.scheduling.provisioningModel': 'SPOT'. preemptible=false and provisioning_model=SPOT is contradicting.
에러를 찾아도 안나오는데 이게 뭐 그거란다.
디스크가 없어서 생성할 수 없음(아님
그래서 이것저것 시도 끝에 생각한 결론
▶ 똑같이 복제하려고 할 때 부팅 디스크 없이 vm 인스턴스를 시작하려고 하면 오류가 발생한다.
그럼 디스크를 만들면 되잖아? → 파일 많으면 어떻게 다시 만들건데
Aㅏ........
그럼 디스크를 기존 vm에서 떼어내고 붙이면 되잖아..?
그래서 gcp docs를 찾아봤더니 역시나 있었음 떼어내는 방법이!!
※ 참고 : https://cloud.google.com/compute/docs/disks/detach-reattach-boot-disk
그런 의미로 저렇게 시도를 해보겠읍니다. 햐햫햐핳햐ㅏㅎㅎ하
1. 인스턴스 중지 > edit > storage 'boot disk' > detach boot disk > save
2. 새로운 인스턴스 생성(**-preem) > 'boot disk' change > exsting discks > disk 선택 > select
3. management > Availability policies > VM provisioning model : Spot 설정
4. ssh 접속 후 list 확인 > 기존 vm 삭제
이렇게 하면 된다.
이걸 알아내고 너무 신나서 vm을 하나하나 디스크 해제하고 떼어내는데..
이거 솔직히 몇개 안되니까 일일히 떼어내서 다시 붙이는데 인스턴스가 100개 200개 넘어가면 일일히 다시 떼었다 붙이기 힘들 듯
자동화관리 할 수 있게 해줬으면 좋겠다.
아니면 한꺼번에 선점형으로 edit으로 변경할 수 있게 해주던가..
특이점
Connection via Cloud Identity-Aware Proxy Failed
Code: 1006
Please ensure you can make a proper https connection to the IAP for TCP hostname: https://tunnel.cloudproxy.app
You may be able to connect without using the Cloud Identity-Aware Proxy.
VM을 중지시키고 디스크를 분리 후 선점형 VM에 분리한 디스크를 갈아 끼운 뒤 정상작동하는지 확인하려고 ssh에 접속하면 뜨는 현상 중에 하나
계속해서 누르면 아래처럼 트러블 슈팅을 확인하라고 뜬다.
You cannot connect to the VM instance because of an unexpected error. Wait a few moments and then try again.
See troubleshooting docs.
킹치만 아무것도 안나옴 겨우 서치해서 나온게 아래 링크임
디스크를 기존것으로 갈아끼운 뒤 정상작동 되는걸 확인했으나 종종 안되는게 있음
한마디로 디스크 뻑났단 소리임 염병
어쩌겠나요..
해결책은 하나다.
디스크를 새로 만들어야함
고로 디스크를 분리하기 전에 미리 디스크 이미지를 떠 놓고 망해도 좌절하지말고 새로 만들도록 하자..
어떻게 알았냐면 저도 알고싶지 않았어요.
220726_수정
cloud shell에서 선점형 vm 생성하기
1. 기존 vm 중지 후 디스크 분리(vm : disk-test / disk name : disk-test)
2. 명령어 입력
gcloud compute instances create disk-test2[vm명] --project=[프로젝트명] --zone=us-central1-a --preemptible --disk=boot=yes,device-name=disk-test[사용할 disk명],mode=rw,name=disk-test[사용할 disk명]
* 사용할 디스크명을 두번 넣어준다.
양식이 그럼
그렇지 않으면 에러나염
혹시 몰라 test 파일을 만들어두었다.
3. vm이 설정한 디스크와 제대로 생성되었는지 확인
히히 잘 붙었다.
shell로 선점형 vm을 생성하려면 이렇게 하면 댐
'GCP > 구성연습' 카테고리의 다른 글
GCP vm에 gitlab Project sycn 하기 (0) | 2022.12.05 |
---|---|
k8s ingress & cloud armor 설정 (0) | 2022.08.19 |
gitlab branch 생성 → gcp source repository 미러링2(최종) (0) | 2022.06.30 |
gitlab branch 생성 및 gcp source repository 에 미러링 1 (0) | 2022.06.29 |
220623 DevOps 파이프라인 빌드(not 퀵랩) (0) | 2022.06.23 |