노력과 삽질 퇴적물

팁: AWS EC2 하드용량 100% 활성화 본문

프로그래밍note/서버 및 통신

팁: AWS EC2 하드용량 100% 활성화

MTG 2015. 2. 6. 11:25

* 해당 포스트는

아마존 AWS EC2 하드용량 확장시,  resize2fs 명령어를 사용하면 에러 메시지만 나오고 먹통일때 유용합니다.

resize2fs 1.42.9 (28-Dec-2013)

resize2fs: Bad magic number in super-block while trying to open /dev/xvda1

Couldn't find valid filesystem superblock.

* 과정자체는 꽤나 단순하지만, AWS EC2에 대한 자료가 적은편이기도 해서 편의제공 차원으로 캡쳐때문에 스크롤이 약간 길어졌습니다.


1
2
3
4
5
[root] # lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  10G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0   6G  0 part /




0. 필요한 파일


파일명

예시 경로

 putty.exe [#다운로드]

 (특이사항 없음)


* 시행 환경: 아마존AWC EC2, Red Hat Enterprise Linux 7.0 (HVM), SSD Volume Type - ami-35556534




1. 스냅샷&볼륨


인스턴스를 stop시킨후, 해당 인스턴스에 붙어 있는 볼륨으로 snapshot을 만듭니다.

편의상 인스턴스에 붙어 있는걸 test, 스냅샷을 통해 만든 볼륨을 test_copy라고 하겠습니다.


참고로 stopped상태가 아닌걸로 snapshot을 만들면 이 다음 과정에서 매뉴얼과 약간 다르게 해야 합니다.

(자세한건 해당 과정에서)



ELASTIC BLOCK STORE>Snapshots

스냅샷으로 용량을 좀더 늘리거나 그대로 갑니다.

예시에서는 루트 디스크쪽은 개발도구만 돌릴거라서 용량 변경까진 안 했습니다.


디바이스 명은 /dev/sdf ~ /dev/sdp중에서 아무거나 골라서 넣습니다.

그리고 인스턴스를 재가동 시킵니다.




2. xfs_repair 1차


lsblk 명령어로 연결된 볼륨들의 디스크 라벨명을 확인합니다.

test_copy는 /dev/sdp로 지정했기 때문에 예시에서는 xvdp로 인식되는걸 확인할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root] # lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda        202:0    0  10G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0   6G  0 part /
xvdp        202:240  0  10G  0 disk
├─xvdp1 202:241  0   1M  0 part
└─xvdp2 202:242  0   6G  0 part
 
[root@ip-10-0-0-65 ec2-user] # xfs_repair /dev/xvdp2
Phase 1 - find and verify superblock...
... ... ...
... ... ...
Phase 7 - verify and correct link counts...
done


만약 MOUNTPOINT항목 「/」가 xvda가 아닌 다른 디스크쪽에 있는 경우는

인스턴스를 정지 안 하고 스냅샷을 만들어서입니다.

「/」가 안 붙은 디스크쪽 용량을 100% 늘리는걸로 진행하거나, 스냅샷 다시 만들어서 하면 됩니다.




3. parted


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root] # parted /dev/xvdp
GNU Parted 3.1
Using /dev/xvdp
Welcome to GNU Parted! Type 'help' to view a list of commands.
 
(parted) unit s
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdp: 20971520s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
 
Number  Start  End        Size       File system  Name  Flags
 1      2048s  4095s        2048s                                 bios_grub
 2      4096s  12587007s  12582912s  xfs
 
(parted) rm 2
(parted) mkpart Linux 4096s 100%
(parted) print
Model: Xen Virtual Block Device (xvd)
... ... ...
 
... ... ...
Number  Start  End        Size       File system  Name   Flags
 1      2048s  4095s        2048s                                  bios_grub
 2      4096s  20969471s  20965376s  xfs          Linux
(parted) set 1 boot on
(parted) print
Model: Xen Virtual Block Device (xvd)
... ... ...
 
... ... ...
Number  Start  End        Size       File system  Name   Flags
 1      2048s  4095s        2048s                                  boot
 2      4096s  20969471s  20965376s  xfs            Linux
(parted) quit




4. xfs_repair 2차


1
2
3
4
5
6
7
8
9
10
11
12
13
[root] # xfs_repair /dev/xvdp2
Phase 1 - find and verify superblock...
... ... ...
Phase 7 - verify and correct link counts...
done
[root] # lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  10G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0   6G  0 part /
xvdp    202:240  0  10G  0 disk
├─xvdp1 202:241  0   1M  0 part
└─xvdp2 202:242  0  10G  0 part


인스턴스를 stop하고 볼륨들을 전부 detach시켜서 test_copy를 /dev/sda1로 attach합니다.

그리고 용량이 확장된 test_copy가 붙은 인스턴스를 실행시켜서 확인해봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
[root] # lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  10G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0  10G  0 part /
[root] # df -h
Filesystem      Size   Used Avail Use% Mounted on
/dev/xvda2     10G   816M  9.2G   8% /
devtmpfs         487M      0  487M   0% /dev
tmpfs              497M      0  497M   0% /dev/shm
tmpfs              497M   13M 484M   3% /run
tmpfs              497M      0  497M   0% /sys/fs/cgroup




기타. 참조자료


[Resolved] Amazon EC2 Redhat 7 using 6GB for the root space

AWS Developer Forums: resize root volume RHEL 7 ...




기타. 변경이력


일자

변경이력

2015-02-06

 초안