EC2는 크기를 늘린 후 볼륨 크기를 조정할 수 없습니다.


95

EC2 볼륨 크기 조정 단계를 따랐습니다.

  1. 인스턴스를 중지했습니다.
  2. 현재 볼륨의 스냅 샷을 찍었습니다.
  3. 동일한 리전에서 더 큰 크기로 이전 스냅 샷에서 새 볼륨을 생성했습니다.
  4. 인스턴스에서 이전 볼륨을 분리했습니다.
  5. 동일한 마운트 지점의 인스턴스에 새 볼륨을 연결했습니다.

이전 볼륨은 5GB이고 내가 만든 볼륨은 100GB입니다. 이제 인스턴스를 다시 시작하고 실행할 df -h I때이 항목이 계속 표시됩니다.

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            4.7G  3.5G 1021M  78% /
tmpfs                 296M     0  296M   0% /dev/shm

이것은 내가 달릴 때 얻는 것입니다.

sudo resize2fs /dev/xvde1

The filesystem is already 1247037 blocks long.  Nothing to do!

내가 달리면 cat /proc/partitions

 202       64  104857600 xvde
 202       65    4988151 xvde1
 202       66     249007 xvde2

내가 올바른 단계를 따랐다면 내가 이해하는 바에서 xvde는 xvde1과 동일한 데이터를 가져야하지만 사용 방법을 모르겠습니다.

새 볼륨을 사용하거나 xvde1을 마운트하고 대신 xvde를 마운트하려면 어떻게해야합니까?

내가 뭘 잘못하고 있는지 이해할 수 없다

나는 또한 시도했다 sudo ifs_growfs /dev/xvde1

xfs_growfs: /dev/xvde1 is not a mounted XFS filesystem

Btw, 이것은 centos 6.2 x86_64가있는 리눅스 상자입니다.

도움에 미리 감사드립니다.

답변:


70

Wilman에게 감사합니다. 명령이 올바르게 작동했습니다. EBS를 더 큰 크기로 늘리는 경우 약간의 개선을 고려해야합니다.

  1. 인스턴스 중지
  2. 볼륨에서 스냅 샷 생성
  3. 크기를 늘리는 스냅 샷을 기반으로 새 볼륨 생성
  4. (즉, 확인하고 현재의 볼륨 탑재 지점을 기억 /dev/sda1)
  5. 현재 볼륨 분리
  6. 최근 생성 된 볼륨을 인스턴스에 연결하여 정확한 마운트 지점을 설정합니다.
  7. 인스턴스 다시 시작
  8. SSH를 통해 인스턴스에 액세스하고 실행 fdisk /dev/xvde

    경고 : DOS 호환 모드는 더 이상 사용되지 않습니다. 모드를 끄고 (명령 'c') 디스플레이 단위를 섹터 (명령 'u')로 변경하는 것이 좋습니다.

  9. p현재 파티션을 표시하려면 누르십시오.

  10. d현재 파티션을 삭제하려면 누르십시오 .
  11. n새 파티션을 만들려면 누르십시오.
  12. p기본으로 설정하려면 누르 세요.
  13. 1첫 번째 실린더를 설정하려면 누르십시오.
  14. 원하는 새 공간을 설정합니다 (비어 있으면 전체 공간이 예약 됨).
  15. a부팅 가능하도록 누르 십시오.
  16. 히트 1w쓰기 변경
  17. 인스턴스를 재부팅하거나 partprobe( parted패키지에서) 사용 하여 새 파티션 테이블에 대해 커널에 알립니다.
  18. SSH를 통해 로그인하고 resize2fs / dev / xvde1을 실행합니다.
  19. 마지막으로 df -h를 실행하는 새 공간을 확인하십시오.

1
"경고 : DOS 호환 모드는 더 이상 사용되지 않습니다. 모드를 끄고 (명령 'c') 표시 단위를 섹터로 변경하는 것이 좋습니다 (명령 'u')" 이것은 나에게 필요하지 않았습니다 (Ubuntu 13.04). 이미 DOS 호환성을 끄고 기본적으로 섹터를 사용했습니다. 를 c누르고 u실제로 사용되지 않는 모드로 전환했습니다.
wisbucky

6
솔루션은 훌륭하게 작동했지만 인스턴스는 느낌표 (ReadHat 6.5)와 함께 "1/2 검사 통과"에서 멈췄습니다. 이 문제를 해결하기 위해 "첫 번째 실린더"를 16으로 설정했습니다 (이전처럼). 그 후 인스턴스는 "2/2 검사 통과"로 정상적으로 시작되었습니다. 희망이 ... 사람을 도움
user3586516

1
나도 첫 번째 실린더를 변경해야했지만 2048으로 변경해야했습니다. 삭제하기 전에 현재 파티션 설정을 확인하는 것이 좋습니다.
Doyley 2014

9
인스턴스를 재부팅 한 후 SSH를 통해 연결할 수 없습니다. 연결 시간이 초과되고 aws 콘솔에 상태 확인을 시작할 수 없음이 표시됩니다. 죽은 것 같아요. 무엇을 해야할지 아십니까?
리처드

5
AWS가 EBS 볼륨에 대한 온라인 크기 조정을 지원하므로이 답변은 이제 더 이상 사용되지 않습니다.
Dale Anderson

308

더 이상 크기를 조정하기 위해 인스턴스를 중지하고 EBS 볼륨을 분리 할 필요가 없습니다!

2017 년 2 월 13 일 Amazon 발표 : " Amazon EBS 업데이트 – 새로운 탄력적 볼륨으로 모든 것을 변경 "

확장 할 볼륨이 실행중인 인스턴스의 루트 볼륨 인 경우에도 프로세스가 작동합니다!


Ubuntu의 부팅 드라이브를 8G에서 16G로 "즉석"으로 늘리고 싶다고 가정 해 보겠습니다.

단계 -1) AWS 웹 콘솔에 로그인-> EBS-> 크기를 조정하려는 항목을 마우스 오른쪽 버튼으로 클릭-> "볼륨 수정"-> "크기"필드 변경 및 [수정] 버튼 클릭

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력


2 단계) ssh를 인스턴스에 넣고 파티션 크기를 조정합니다.

상자에 연결된 블록 장치를 나열 해 보겠습니다.
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

보시다시피 / dev / xvda1은 16GiB 장치에서 여전히 8GiB 파티션이며 볼륨에 다른 파티션이 없습니다. "growpart"를 사용하여 8G 파티션의 크기를 최대 16G로 조정 해 보겠습니다.

# install "cloud-guest-utils" if it is not installed already
apt install cloud-guest-utils

# resize partition
growpart /dev/xvda 1

결과를 확인해 봅시다 (/ dev / xvda1은 이제 16G입니다).

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /

많은 SO 답변에서 fdisk를 삭제 / 재생성 파티션과 함께 사용하는 것이 좋습니다. 이는 특히 부팅 드라이브를 변경할 때 불쾌하고 위험하며 오류가 발생하기 쉬운 프로세스입니다.


3 단계) 새 파티션 공간을 완전히 사용하기 위해 파일 시스템 크기 조정
# Check before resizing ("Avail" shows 1.1G):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  6.3G  1.1G  86% /

# resize filesystem
resize2fs /dev/xvda1

# Check after resizing ("Avail" now shows 8.7G!-):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       16G  6.3G  8.7G  42% /

따라서 다운 타임이없고 사용할 새로운 공간이 많습니다.
즐겨!

업데이트 : 업데이트 : XFS 파일 시스템의 경우 resize2fs 대신 sudo xfs_growfs / dev / xvda1을 사용합니다.


파티션 크기 조정이 큰 도움이되었습니다 .... !! 가장 멋진 점은 루트 볼륨에서도 작동한다는 것입니다.
piyushmandovra

4
누군가 이것을 정답으로 받아들이겠습니까? 왜냐하면 ... 그렇습니다.
eduardohl

고체, 감사 톤 ... 나는 위의 답변에서 언급 한 단계를 수행하기에 매우 회의적이었다 그러나 이것은 그렇게 망할 냉각되었다
AAgg

4
허, 공식 문서는 growpart를 언급하지 않았기 때문에 이전에이 작업을 수행 할 수 없었습니다. 감사!
Ibrahim

1
@ Shihas, 네. 그게 요점입니다. 부팅 가능한 "루트"마운트 드라이브도 재부팅 할 필요없이 안전하게 늘릴 수 있습니다!
Dmitry Shevkoplyas

42

위의 jperelli의 지사 의견.

나는 오늘도 같은 문제에 직면했습니다. AWS 설명서에는 growpart가 명확하게 언급되어 있지 않습니다. 나는 어려운 방법을 알아 냈고 실제로 두 명령은 Ubuntu와 함께 M4.large 및 M4.xlarge에서 완벽하게 작동했습니다.

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1

첨부에 대한 두 번째 답변
이며이

놀랄 만한! 내 t2.small 인스턴스에서 일했습니다. 아휴. 그것보다 피가 더 많을 것이라고 생각했습니다. 감사!
publicknowledge

growpart가 포함 된 cloud-guest-utils를 설치할 수없는 것 같습니다. 리눅스 버전 3.16.0-4 - AMD64
네티

16

[해결됨]

이것이해야 할 일입니다

  1. 인스턴스 중지
  2. 볼륨에서 스냅 샷 생성
  3. 크기를 늘리는 스냅 샷을 기반으로 새 볼륨 생성
  4. 현재의 볼륨 마운트 지점 (예 : / dev / sda1)을 확인하고 기억하십시오.
  5. 현재 볼륨 분리
  6. 최근 생성 된 볼륨을 인스턴스에 연결하여 정확한 마운트 지점을 설정합니다.
  7. 인스턴스 다시 시작
  8. SSH를 통해 인스턴스에 액세스하고 실행 fdisk /dev/xvde
  9. p현재 파티션을 표시하려면 누르십시오.
  10. d현재 파티션을 삭제하려면 누르십시오 .
  11. n새 파티션을 만들려면 누르십시오.
  12. p기본으로 설정하려면 누르 세요.
  13. 1첫 번째 실린더를 설정하려면 누르십시오.
  14. 원하는 새 공간을 설정합니다 (비어 있으면 전체 공간이 예약 됨).
  15. a부팅 가능하도록 누르 십시오.
  16. 히트 1w쓰기 변경
  17. 인스턴스 재부팅
  18. SSH를 통해 로그인하고 실행 resize2fs /dev/xvde1
  19. 마지막으로 실행중인 새 공간을 확인하십시오. df -h

이거 야

행운을 빕니다!


1
Amazon EBS 볼륨에서는 fdisk에서 사용하는 것과 동일한 마운트 지점을 resize2fs에서 사용하는 것이 중요해 보입니다. df는 연결된 EBS 볼륨으로 / dev / xvda1과 같은 것을 보여 주지만, resize2fs 명령은 내가 fdisk에서 새 파티션을 만들 때 사용한 / dev / sdf1 식별자를 사용할 때만 저에게 효과적이었습니다.
Garreth McDaid 2014

이것은 AWS 설명서에 있습니다. 안타깝게도 3 년이 지난 후에도 절차가 아직 불완전하다는 것입니다. 이미지가있는 경우 물러 설 수 있습니다. 데스크톱을 실행하는 인스턴스에서도 새 디스크를 일시적으로 중단 할 수 있지만 gparted를 사용하려는 경우 크기 조정을 위해 마운트해야하는 문제가 발생할 수 있습니다. gcloud는 즉시 크기를 조정합니다.
mckenzm

내 저장 장치 (/ dev / xvda1)는 섹터 1이 아닌 16065 섹터에서 시작되었습니다. 따라서 제 경우에는 13 단계 (첫 번째 실린더를 설정하기위한 히트 1)가 16065 여야했습니다.
Simon Paarlberg

이러한 솔루션을 사용하지 마십시오. 데이터가 손실 될 수 있습니다. 사실, 파티션 테이블에 파티션 목록 값을 표시하면 파티션 삭제 옵션을 사용하지 않는다는 사실을 알아 냈습니다. 목록이 있으면 파티션을 말 그대로 삭제하므로 "그렇지 않을 것입니다."라고 대답해도 데이터가 손실됩니다. 지우다". 파티션 크기를 확장하는 방법이 있습니다. 아래쪽에 파티션 크기를 원활하게 확장하는 데 도움이되는 다른 유틸리티가 있는지 확인하십시오.
piyushmandovra 17:29에

6
  1. AWS 웹 콘솔에 로그인-> EBS-> 크기를 조정할 항목을 마우스 오른쪽 버튼으로 클릭-> "볼륨 수정"-> "크기"필드 변경 및 [수정] 버튼 클릭

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

이것은 Dmitry Shevkoplyas의 대답의 추격전 버전입니다. AWS 설명서에는 growpart명령이 표시되지 않습니다 . 이것은 우분투 AMI에서 정상적으로 작동합니다.


6
  1. sudo growpart / dev / xvda 1
  2. sudo resize2fs / dev / xvda1

위의 두 명령은 AWS ubuntu ec2 인스턴스에 대한 시간을 절약했습니다.



4

누군가 GCP Google 클라우드 플랫폼을 위해 여기에 있다면 다음을
시도하십시오.

sudo growpart /dev/sdb 1
sudo resize2fs /dev/sdb1

2

이 볼륨에 파티션을 만들었습니까? 그렇게했다면 먼저 파티션을 늘려야합니다.


아니요 나는 안 그랬어요. 어떻게해야합니까? 나는 원래 볼륨의 스냅 샷이기 때문에 이전의 모든 데이터가하도록되어 첨부이 새 볼륨 기억
Wilman Arambillete

아니요.하지만 파티션이 연결되어 있으면 오류가 발생했습니다. 가서 볼륨을 올바른 크기로 만들 었는지 다시 확인하고 새 볼륨을 마운트했는지 다시 확인하십시오.
chantheman

또한이 작업을 수행하기 위해 인스턴스를 중지 할 필요가 없습니다. 해당 볼륨에 쓰기가 있으면 안전하지만 실행중인 인스턴스로 스냅 샷을 만들 수 있습니다.
chantheman

1

제 경우에는 부팅 가능 플래그 (a)가 작동하지 않았으므로 (EC2, centos6.5) 스냅 샷에서 볼륨을 다시 만들어야했습니다. 부팅 가능 플래그를 제외한 모든 단계를 반복 한 후 모든 것이 완벽하게 작동하여 이후에 크기를 조정할 수있었습니다. 감사합니다!


1

감사합니다, @Dimitry, 내 파일 시스템에 맞게 작은 변경 사항이있는 매력처럼 작동했습니다.

출처 : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux

그런 다음 다음 명령을 사용하여 파일 시스템의 마운트 지점을 대체합니다 (크기를 조정하려면 XFS 파일 시스템을 마운트해야합니다).

[ec2-user ~]$ sudo xfs_growfs -d /mnt
meta-data=/dev/xvdf              isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 26214400

Note xfsctl failed : Cannot allocate memory 오류가 발생하면 인스턴스에서 Linux 커널을 업데이트해야 할 수 있습니다. 자세한 정보는 특정 운영 체제 문서를 참조하십시오. The filesystem is already nnnnnnn blocks long. 할 것이 없다! 오류, Linux 파티션 확장을 참조하십시오.


0

위에 언급 할 충분한 담당자가 없습니다. 위의 설명에 따라 1부터 시작하면 인스턴스가 손상 될 수 있습니다. 'p'로 파티션을 나열하기 전에 fdisk를 시작한 후 'u'를 누르면 실제로 올바른 시작 번호를 제공하므로 볼륨이 손상되지 않습니다. centos 6.5 AMI의 경우 위에서 언급했듯이 2048이 나에게 맞았습니다.


0

그래서 누군가가 100 % use로이 문제를 겪는 문제가 있었고 growpart 명령을 실행할 공간도 없습니다 (/ tmp에 파일을 생성하기 때문에).

다음은 EBS 볼륨이 사용 중이고 ec2에 남은 공간이없고 100 % 인 경우에도 우회하는 명령입니다.

/sbin/parted ---pretend-input-tty /dev/xvda resizepart 1 yes 100%

여기에서이 사이트를보십시오 :

https://www.elastic.co/blog/autoresize-ebs-root-volume-on-aws-amis


이 명령은 다음에해야 sudo resize2fs /dev/xvda1갱신에 /etc/fstab그 후에, df -h성장 된 디스크 공간이 표시됩니다
karmendra

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.