[amazon-ec2] Amazon EC2 인스턴스의 루트 EBS 디바이스를 변경할 수 있습니까?

EBS 지원 Amazon EC2 인스턴스가 있습니다. 이 인스턴스에서 루트 장치를 변경하고 싶습니다. 이에 대해 최선의 방법을 조언 해 주시겠습니까?

블록 장치의 몇 가지 속성 변경에 대한 문서 만 찾을 수 있지만 루트 장치로 설정하는 것은 포함되어 있지 않은 것 같습니다.



답변

네, 아주 쉽습니다.

  1. 인스턴스를 중지하십시오.
  2. 루트 EBS 볼륨을 분리합니다.
  3. 대체 EBS 볼륨을 루트로 연결합니다. /dev/sda1
  4. 인스턴스를 시작하십시오.

이것은 물론 대체 EBS 볼륨이 부팅 가능하다는 것을 전제로합니다. 부팅 가능한 OS 이미지를 포함해야합니다.


답변

선택한 답변에 주석을 추가 할 충분한 담당자가 없지만 저를 위해 /dev/sda1작동하지 않았고 (루트로 첨부하지 않았 음) working (루트로 첨부)을 사용 했음을 지적하고 싶습니다 /dev/xvda. 인스턴스는 HVM을 사용하는 최신 t2.micro 인스턴스 중 하나입니다.


답변

수락 된 답변의 댓글 스레드에서 Diomidis Spinellis의 댓글에 대해 자세히 설명하려면 새 루트 기기로 전환하려는 기기의 파일 시스템 레이블을 확인하는 것이 중요합니다. 자체 서버 마이그레이션 문제를 해결하는 동안 인스턴스가 부팅되기 전에 다음을 수행해야했습니다.

e2label명령을 사용 하여 새 루트 장치 용으로 만든 ext2 / ext3 / ext4 파일 시스템의 레이블을 변경합니다.

먼저 현재 루트 장치의 파일 시스템 레이블을 확인하십시오.

$ sudo e2label /dev/xvda1
cloudimg-rootfs

동일한 파일 시스템 레이블을 갖도록 새 장치를 설정하십시오.

$ sudo e2label /dev/xvdg 'cloudimg-rootfs'

제 경우 레이블은 cloudimg-rootfs. 때로는 단순히 /.

e2label의 작동 방식을 이해하는 것이 중요합니다. 자세한 내용 man e2label은 컴퓨터를 확인 하거나 http://linux.die.net/man/8/e2label 을 방문 하십시오 .


답변

aws 권장 솔루션입니다. 중지 한 후 원래 인스턴스에서 루트 볼륨을 분리 할 수 ​​있습니다. 루트 볼륨은 / dev / sda1에 연결됩니다. 분리되면 새 인스턴스에 연결하십시오. 볼륨이 연결된 후 OS에서 마운트해야 할 수 있습니다. 마운트되면 그 안에있는 데이터를 볼 수 있습니다.

새 키 추가를 완료 한 후 분리하고 / dev / sda1에서 원래 인스턴스에 연결할 수 있습니다.

변경하기 전에 루트 볼륨의 스냅 샷을 생성하는 것이 좋습니다.

솔루션을 시도하기 전에 중요하지 않은 인스턴스 또는 스팟 인스턴스를 시도하십시오.


답변

CloudFormation을 통해이 작업을 수행하려면 다음을 수행해야합니다.

  1. 기존 루트 볼륨에서 스냅 샷 생성 (콘솔 또는 CLI를 통해)
  2. 이 스냅 샷에서 새 AMI 생성-여기에서 루트 볼륨 크기를 늘리고 올바른 가상화 시간 (반 가상화 또는 HVM)을 선택했는지 확인합니다.
  3. AWS :: EC2 :: Instance 리소스에서 ImageId 파라미터를 방금 만든 새 AMI로 설정합니다.

스택을 배포하십시오. 그러면 인스턴스가 다시 생성되므로 탄력적 IP 주소를 사용하고 있는지 또는 DNS 액세스 권한이 있는지 확인하십시오.

이 해결 방법을 수행해야하는 이유는 CF가 EC2 BlockDeviceMappings에서 루트 볼륨 크기를 조정하거나 루트 볼륨의 SnapshotId를 조정하는 것을 허용하지 않기 때문입니다.


답변

볼륨이 마운트되면 번호가 붙은 후위가 붙습니다. 예를 들어 /dev/sda마운트되면 /dev/sda1, /dev/sda2만든 파티션에 따라 마운트됩니다 . 루트 디바이스 자체를 마운트 할 때 디바이스가 이미 마운트되었다고 가정하므로 /dev/sda1볼륨 마운트를 루트 디바이스로 제공해야합니다 . 참고 : 연결된 루트 볼륨이 없어야합니다.

다음 단계를 따르십시오. 1) 볼륨으로 이동하여 작업에서 볼륨 연결을 선택합니다. 2) 인스턴스를 선택합니다. 3) 루트로 마운트하려면 디바이스 이름을 /dev/sda1
4) 인스턴스를 시작합니다.


답변