Amazon EBS 볼륨 크기 증가


154

Amazon의 EC2 및 EBS 서비스에 깊은 인상을 받았습니다. EBS 볼륨을 늘릴 수 있는지 알고 싶었습니다.

예를 들어, 볼륨이 50GB이고 공간이 부족한 경우 필요할 때 최대 100GB까지 충돌시킬 수 있습니까?


2
나는 당신의 ebs 볼륨의 크기를 늘리기위한 튜토리얼을 작성했습니다 -aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik

8
좋은 질문입니다 (+1). 서버 오류에 더 적합합니까?
Jonik

1
: 훨씬 더 최신에 그대로이 답변을 upvote에하십시오 stackoverflow.com/a/15229477/163461
데이비드

1
@Jonik 나는 전적으로 동의합니다. 이 질문을 마이그레이션 할 수 있도록 다시 열도록 투표하십시오. 일부 모드를 읽지 않는 한 이것을 동일하게 할 수 있습니까?
Yuck

더 많은 최신 답변 (예 : docs.aws.amazon.com/AWSEC2/latest/UserGuide/… ) 에 대한 AWS 설명서를 참조하는 답변을 허용하는 것 외에 다른 이유로 서버 결함으로 마이그레이션해야합니다.
French

답변:


9

모든 훌륭한 권장 사항과 필자가 찾은이 기사를 추가 할 것이라고 생각했는데, 이는 Amazon Web UI 도구를 사용하여 Windows Amazon EC2 EBS 인스턴스를 확장하여 필요한 변경을 수행하는 것과 관련이 있습니다. CLI를 사용하는 데 불편한 경우 업그레이드가 훨씬 쉬워집니다.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

이 기사를 게시 한 TekGoblin에게 감사합니다.


103

스토리지를 확장 할 수는 있지만 즉시 수행 할 수는 없습니다. 현재 블록의 스냅 샷을 찍고 더 큰 새로운 블록을 추가 한 후 스냅 샷을 다시 첨부해야합니다.

여기Amazon EC2 명령 줄 도구 를 사용한 간단한 연습이 있습니다.


2
파일 시스템의 크기를 조정해야합니다. "resize2fs-ext2 / ext3 / ext4 파일 시스템 크기 조정기"를 찾고있을 것입니다.
제임스 무어

8
난 그냥 구글에했다. 이 질문과이 비디오를 동시에 쳤습니다. 이것은, 창조자에 많은 덕분에 정말 좋은 walkthough입니다 : youtube.com/watch?v=ouYjQ3_I3BA (. I 리사이 비트를 제외하고 내 자신에 알아 낸 모든 것을, 제임스 무어 언급처럼)
앨런 레인 크리스

EBS를 사용 하는 이점 에 대한 유연성 중 하나로 스냅 샷의 VolumeSize를 먼저 쿼리 하여 AWS-SDK사용하여 EBS 볼륨 크기설정 하는 방법도 있습니다 .
Chetabahana

실제로 AWS 콘솔에서 라이브 볼륨의 크기를 조정할 수 있습니다 . SSD 인스턴스 (gp2, io1)에서만 작동하는 것으로 보이며 한 유형에서 다른 유형으로 전환 할 수도 있습니다. 언제 추가되었는지는 확실하지 않지만 주요 문제점을 해결합니다.
STRML

44

필요한 경우 더 많은 공간을 즉석에서 '충돌'할 수는 없지만 스냅 샷으로 파티션 크기를 조정할 수 있습니다.

단계는 다음과 같습니다.

  1. ebs 볼륨 마운트 해제
  2. ebs 스냅 샷 생성
  3. 더 많은 공간을 가진 새로운 볼륨 추가
  4. 파티션 테이블 재 작성 및 파일 시스템 크기 조정
  5. 새로운 ebs 볼륨을 마운트

http://aws.amazon.com/ebs/ - EBS 스냅 샷 :

또한 스냅 샷을 사용하여 여러 개의 새 볼륨을 인스턴스화하거나 볼륨 크기를 확장하거나 가용 영역간에 볼륨을 이동할 수 있습니다. 새 볼륨이 생성되면 기존 Amazon S3 스냅 샷을 기반으로 생성하는 옵션이 있습니다. 이 시나리오에서 새 볼륨은 원래 볼륨의 정확한 복제본으로 시작합니다. 선택적으로 다른 볼륨 크기 또는 다른 가용 영역을 지정하면이 기능을 기존 볼륨의 크기를 늘리거나 새 가용 영역에서 중복 볼륨을 생성하는 방법으로 사용할 수 있습니다. 스냅 샷을 사용하여 볼륨 크기를 조정하도록 선택한 경우 파일 시스템 또는 응용 프로그램이 장치 크기 조정을 지원하는지 확인해야합니다.


22

나는 모든 대답을 따랐으며, 모든 것을 존중하지 않고 무언가를 놓쳤다.

이 단계를 수행하면 EBS 볼륨을 늘리고 데이터를 유지할 수 있습니다 (루트 볼륨 용이 아님). 편의상 AWS consule을 사용하여 스냅 샷을 생성 할 것을 제안하고 있습니다. AWS 명령 줄 도구를 사용하여이를 수행 할 수도 있습니다.

우리는 여기서 루트 볼륨을 건드리지 않습니다.

AWS 콘솔로 이동하십시오.

  1. 인스턴스 종료 (몇 분 동안 만)
  2. 확장하려는 볼륨을 분리하십시오 (예 : / dev / xvdf).
  3. 볼륨의 스냅 샷을 만듭니다.
  4. 방금 생성 한 스냅 샷을 사용하여 더 큰 크기의 새 볼륨 만들기
  5. 새 볼륨을 인스턴스에 연결
  6. 인스턴스 시작

인스턴스에 대한 SSH :

 $ sudo fdisk -l

이것은 다음과 같은 것을 제공합니다.

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

아래로 쓰기 시작 하고 아이디 값을. (이 경우 2048 및 83)

fdisk를 사용하여 xvdf1 파티션을 삭제하고 동일한 블록 (2048)에서 정확하게 시작하는 새 파티션을 만듭니다. 동일한 ID (83)를 부여합니다.

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

이 단계는 여기에 잘 설명되어 있습니다 : http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

거의 완료되었으므로 볼륨을 마운트하고 resize2fs를 실행하면됩니다.

ebs 볼륨을 마운트합니다 : (mine은 / mnt / ebs1에 있습니다)

$ sudo mount /dev/xvdf1 /mnt/ebs1

크기를 조정하십시오.

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

끝난! df -h새 크기를 확인하는 데 사용하십시오 .


19

Eric Hammond는 가동 중단 시간이 몇 분이면 문제가없는 한 실행중인 EBS 인스턴스의 루트 디스크 크기 조정에 대한 유용한 기사를 작성했습니다. http://alestic.com/2010/02/ec2-resize-running-ebs -뿌리


1
이것에 영감을 받아, 나는 "awscripts", @ github.com/moejay/awscripts를 작성하기 시작 했습니다. 여기에는 Eric의 명령과 인스턴스 유형을 변경하는 명령이 포함 된 쉬운 'crontabbable'스크립트가 있습니다
jay jay

5

이제 AWS Management Console을 통해이를 수행 할 수 있습니다. 프로세스는 다른 답변과 동일하지만 더 이상 명령 줄로 이동할 필요가 없습니다.


7
웹 콘솔을 통해이를 수행하는 방법에 대한 자세한 정보를 게시 할 수 있습니까? 콘솔은 볼륨의 크기를 조정할 수 있지만, 특히 XFS, BRTFS 등과 같은 형식 인 경우 볼륨 내부의 파티션 크기 조정을 어떻게 처리합니까?
리야드 칼라

이것은 기존 답변 만 보강하고 자체적으로 새로운 것을 추가하지 않으므로 주석이어야합니다.
Yuck

1
웹 콘솔 사용 지침은 여기에서 확인할 수 있습니다. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov

4

BTW : 물리 디스크와 마찬가지로 LVM을 사용하는 것이 편리 할 수 ​​있습니다. 전의:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

큰 장점 : 공간을 동적으로 추가 (또는 제거) 할 수 있습니다.

또한 인스턴스간에 / 이동 중에 쉽게 이동할 수 있습니다.

주의 사항 :

  • 미리 구성해야합니다
  • 간단한 JBOD 설정은 하나의 "디스크"를 잃으면 모든 것을 잃는다는 의미입니다

4

내 단계 :

  1. 인스턴스를 중지
  2. 인스턴스에 연결된 ebs 볼륨을 찾아서 스냅 샷 생성
  3. 위 스냅 샷을 사용하여 디스크 공간이 더 큰 새 볼륨을 만듭니다. 불행히도 aws 콘솔의 스냅 샷을 생성하는 UI는 aws의 모든 스냅 샷을 나열하기 때문에 거의 사용할 수 없습니다. 다음과 같이 명령 행 도구를 사용하는 것이 훨씬 쉽습니다.

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. 기존 ebs (더 작은) 볼륨을 인스턴스에서 분리

  5. 새 (더 큰) 볼륨을 인스턴스에 연결하고 인스턴스가 예상하는 것과 동일한 장치에 연결해야합니다 (필자의 경우 / dev / sda1).
  6. 인스턴스를 시작

끝났습니다!

위의 3 단계 외에 AWS Management Console을 사용하여 모든 작업을 수행 할 수 있습니다.

여기에 언급 된대로 참고 :

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

ec2 인스턴스의 장치는 / dev / xv * 일 수 있지만 aws 웹 콘솔은 / dev / s *라고 알려줍니다.


2
2013 년 11 월부터 새로 생성 된 스냅 샷을 선택한 다음 페이지 상단의 '볼륨 만들기'를 클릭하면됩니다. 그러면 스냅 샷에서 볼륨이 생성되며 명령 줄에서 위의 3 단계를 수행하지 않아도됩니다.
Matt C

1
한 가지 참고 사항은 인스턴스와 동일한 가용 영역에서 볼륨을 생성하고 있는지 확인해야합니다. 그렇지 않으면 연결할 수 없습니다.
codecowboy

3

Windows OS의 경우 "diskpart"명령을 사용하십시오. 여기를 참조 하십시오. http://support.microsoft.com/kb/300415 사용 루트가 아닌 디스크 (기본이 아닌 동적 디스크)에 대해 수행 한 단계는 다음과 같습니다.

스냅 샷을 생성하고 이전 EBS 볼륨 (예 : 600GB)을 분리하고 더 큰 EBS 볼륨 (예 : 1TB)을 생성하고이 새로운 EBS 볼륨을 마운트하면 Windows에 크기 조정 (600GB에서 1TB)을 알려야합니다. 명령 프롬프트에서 (관리자로 실행)

diskpart.exe

디스크 선택 = 9

볼륨 선택 = Z

넓히다

[Z로 레이블 된 내 디스크 9, 볼륨은 600GB 크기의 ec2- 스냅 샷에서 생성 된 1TB 크기의 볼륨입니다. 600GB를 1TB로 크기를 조정하고 싶으므로 위의 단계를 수행하여이를 수행 할 수 있습니다.]


내 Win Server 2003 R2 Datacenter 시스템에서 훌륭하게 작동했습니다. 팁 고마워!
Jeff Hay

그레이트 포스트, 내가 많은 도움이되었습니다!
user1326293

0

운영 체제에서 지원하는 경우 모든 EBS 볼륨에 대해 LVM (Logical Volume Manager)을 사용하는 것이 좋습니다. 리눅스 배포판은 일반적으로 그렇습니다. 몇 가지 이유로 좋습니다.

  1. 논리적 볼륨의 크기 조정 및 이동은 실시간으로 수행 할 수 있으므로 가동 중지 시간이 필요한 전체 오프라인 스냅 샷 대신 다른 더 큰 EBS 볼륨을 생성하고이를 LVM 풀에 물리적 볼륨 (PV)으로 추가하고 논리 볼륨 (LV)이있는 경우 풀에서 이전 물리 볼륨을 제거하고 이전 EBS 볼륨을 삭제하십시오. 그런 다음 논리 볼륨의 크기를 조정하고 파일 시스템의 크기를 조정하십시오. 가동 중지 시간이 전혀 필요 없습니다!

  2. '물리적'장치에서 스토리지를 추상화합니다. 다운 타임이나 마운트 포인트 / fstab을 변경하지 않고도 장치간에 파티션을 이동하는 것이 매우 편리합니다.

Amazon이 EBS 볼륨의 크기를 즉석에서 조정할 수 있다면 좋을 것입니다.


0

루트 볼륨이 xfs 파일 시스템 인 경우이 명령을 실행하십시오. xfs_growfs /


완전하고 유용한 답변으로 간주 되려면 좀 더 자세한 정보가 필요합니다.
Yuck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.