Amazon EC2에서 실행중인 인스턴스의 디스크 크기를 늘리는 방법


13

Ubunto와 함께 EC 2 서버 설치 인스턴스를 실행 중입니다. 가동 중지 시간과 위험을 최소화하지 않고 디스크 크기를 늘리는 가장 좋은 방법은 무엇입니까?

안내서를 읽으면 새 디스크를 생성하고, 데이터를 마이그레이션하고, 인스턴스 스왑 디스크를 껐다가 다시 켜는 방법이 있습니다. 이 접근 방식은 약간의 위험에 따라 가동 중지 시간이 필요할 수 있습니다. 더 나은 접근법이 있는지 궁금합니다.

답변:


14

Amazon AWS는 EBS 볼륨의 크기를 변경할 수있는 새로운 기능을 2017 년 2 월 13 일에 릴리스했습니다.

출처 : https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

이를 통해 실행중인 기존 인스턴스에서 EBS 볼륨의 크기를 늘릴 수 있습니다.

볼륨 크기를 변경해도 볼륨의 파일 시스템 크기 (대부분의 파일 시스템)는 변경되지 않습니다. 운영 체제 자체에서 파일 시스템에 따라 추가 단계가 필요할 수 있습니다. 예를 들어, resizefsext4파일 시스템은 대부분의 리눅스 OS 오늘에 의해 사용.

프로세스를 설명하는 AWS의 전체 문서는 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html 에서 찾을 수 있습니다.

경우에 따라 블록 장치가 파티션을 매핑 한 경우 하나 이상의 파티션 만 파일 시스템을 포함합니다. 이 경우 파티션의 크기를 먼저 조정 한 다음 파일 시스템 만 조정해야합니다. 이 프로세스는 설명서 에도 설명되어 있습니다.

블로그에 설명 된 새로운 "온라인"크기 조정 기능은 현재 세대 인스턴스에만 적용되며 볼륨 크기 조정을 시도하기 전에 확인해야 할 다른 고려 사항 및 제한 사항 이 있습니다.


파일 시스템의 크기를 조정하기 전에 기본 파티션의 크기도 조정해야합니다. 이는 실제 크기를 조정하기 위해 실제 파티션을 실제로 차단합니다.
Tensibai

@Tensibai 죄송합니다. "핫 크기 조정을위한 물리적 파티션 차단"의 의미를 이해하지 못합니다. AWS API를 사용하여 볼륨 크기를 수정하면 볼륨에 대한 쓰기 / 읽기를 차단한다는 의미입니까?
Evgeny

아니요, 디스크가 더 커질 것이지만 디스크의 파티션은 동일하게 유지 fdisk되므로 루트 파티션과 관련하여 크기를 조정해야합니다. 일반적으로 디스크 파티션 테이블은 마운트 된 상태에서 쓸 수 없습니다. 마운트를 해제 할 수 없습니다. 당신은 한 시점에서 재부팅해야합니다 :)
Tensibai

파일 시스템 계층을 추가하기 전에 여러 파티션을 사용하는 경우 먼저 파티션 크기를 조정해야합니다. 고마워, 나는 그것을 어떻게 수행했는지에 대한 가이드를 인용하여 답변에 추가 할 것입니다.
Evgeny

다운 타임없이 언급 된 질문. 그러나 루트 볼륨의 크기를 조정하려면이 단계를 수행하기 위해 인스턴스를 중단해야합니까?
Chris Stryczynski

2

내가하는 일 (그리고 정확히 귀하의 질문에 대답하지는 않음)은 다음과 같습니다.

  1. EBS 볼륨을 생성하고 인스턴스 문서에 첨부
  2. scsi 버스를 다시 스캔하십시오 echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(호스트 번호를 조정해야 할 수도 있음).
  3. pvcreate새 디스크를 찾은 상태 에서 물리 볼륨 생성 ( fdisk -l모든 디스크를 나열)
  4. 볼륨 그룹을 생성 한 다음 그에 대한 논리적 볼륨 ( vgcreatelvcreate)
  5. 원하는 파일 시스템으로 논리 볼륨 포맷
  6. tar 복원 할 대상 마운트 포인트
  7. 새 공간이 필요한 곳에이 볼륨을 마운트하십시오.
  8. 새로 장착 된이 공간으로 타르를 복원하십시오.

설치하기 전에 새 공간을 사용하는 경우 6 단계와 8 단계는 선택 사항입니다. 기존 디렉토리를 바꾸려면 아카이브의 끝과 복원 사이에 무언가 쓰는 것을 피해야합니다.

다른 마운트 지점에 대해 4-8 단계를 반복 할 수 있습니다. 이렇게하면 필요한 공간을 확장 한 다음 중단없이 온라인으로 볼륨의 크기를 조정할 수 있습니다.


0

AWS (또는 다른 곳)에서 ZFS Zero Downtime 파일 시스템 스토리지 확장

업 사이즈

  1. EC2에 ZFS를 설치하십시오.

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. EBS 볼륨을 사용하여 대량 데이터를위한 zpool을 만듭니다.
  3. 더 많은 블록 스토리지를 얻으려면 다른 EBS를 추가하십시오. (또는 pool autoexpand = true로 설정하고 EBS를 늘리십시오)
  4. 새 EBS를 zpool에 추가하여 공간을 확보하십시오. (자동 확장을 사용하고 EBS 크기를 늘리지 않은 경우)

축소

  1. 축소 된 데이터를 보유 할 수있을만큼 큰 새 EBS에서 새 zpool을 만듭니다. (아직 마운트하지 않아도되거나 동일한 EC2에 장착 할 필요도 없음)
  2. 오래된 너무 큰 zpool 스냅 샷
  3. zfs- 새 zpool로 스냅 샷 보내기
  4. 새 풀에서 수신 된 스냅 샷을 승격하여 마운트
  5. 오래된 수영장을 파괴하다
  6. 오래된 수영장의 EBS를 파괴

0

EBS 볼륨의 크기를 조정 한 후 ZFS 풀을 확장해야 할 때 방금 실행 한 내용은 다음과 같습니다.

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.