EC2 Không thể thay đổi kích thước âm lượng sau khi tăng kích thước


95

Tôi đã làm theo các bước để thay đổi kích thước âm lượng EC2

  1. Đã dừng phiên bản
  2. Chụp nhanh tập hiện tại
  3. Đã tạo một tập mới từ ảnh chụp nhanh trước đó với kích thước lớn hơn trong cùng một khu vực
  4. Đính kèm tập cũ khỏi phiên bản
  5. Đính kèm ổ đĩa mới vào phiên bản tại cùng một điểm gắn kết

Khối lượng cũ là 5GB và khối lượng tôi đã tạo là 100GB Bây giờ, khi tôi khởi động lại phiên bản và chạy df -h Ivẫn thấy điều này

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

Đây là những gì tôi nhận được khi chạy

sudo resize2fs /dev/xvde1

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

Nếu tôi chạy cat /proc/partitionstôi thấy

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

Từ những gì tôi hiểu nếu tôi đã làm theo đúng các bước xvde sẽ có cùng dữ liệu với xvde1 nhưng tôi không biết cách sử dụng nó

Làm cách nào để sử dụng ổ đĩa mới hoặc số lượng xvde1 và mount xvde thay thế?

Tôi không thể hiểu những gì tôi đang làm sai

Tôi cũng đã thử sudo ifs_growfs /dev/xvde1

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

Btw, đây là một hộp linux với centos 6.2 x86_64

Cảm ơn trước sự giúp đỡ của bạn

Câu trả lời:


70

Cảm ơn Wilman, các lệnh của bạn đã hoạt động chính xác, cần phải xem xét cải tiến nhỏ nếu chúng tôi đang tăng EBS thành các kích thước lớn hơn

  1. Dừng phiên bản
  2. Tạo ảnh chụp nhanh từ tập
  3. Tạo một tập mới dựa trên ảnh chụp nhanh tăng kích thước
  4. Kiểm tra và ghi nhớ điểm gắn âm lượng của hiện tại (tức là /dev/sda1)
  5. Tách âm lượng hiện tại
  6. Đính kèm ổ đĩa đã tạo gần đây vào phiên bản, đặt điểm gắn kết chính xác
  7. Khởi động lại phiên bản
  8. Truy cập qua SSH vào phiên bản và chạy fdisk /dev/xvde

    CẢNH BÁO: Chế độ tương thích với DOS không được dùng nữa. Bạn nên tắt chế độ (lệnh 'c') và thay đổi đơn vị hiển thị thành các cung (lệnh 'u')

  9. Nhấn pđể hiển thị các phân vùng hiện tại

  10. Nhấn dđể xóa các phân vùng hiện tại (nếu có nhiều hơn một, bạn phải xóa từng phân vùng một) LƯU Ý: Đừng lo lắng dữ liệu không bị mất
  11. Nhấn nđể tạo một phân vùng mới
  12. Nhấn pđể đặt nó làm chính
  13. Nhấn 1để đặt hình trụ đầu tiên
  14. Đặt không gian mới mong muốn (nếu trống toàn bộ không gian được dành riêng)
  15. Nhấn ađể làm cho nó có thể khởi động
  16. Nhấn 1wghi các thay đổi
  17. Khởi động lại phiên bản HOẶC sử dụng partprobe(từ partedgói) để nói với hạt nhân về bảng phân vùng mới
  18. Đăng nhập qua SSH và chạy resize2fs / dev / xvde1
  19. Cuối cùng kiểm tra không gian mới chạy df -h

1
"CẢNH BÁO: Chế độ tương thích với DOS không được dùng nữa. Bạn nên tắt chế độ này (lệnh 'c') và thay đổi đơn vị hiển thị thành các cung (lệnh 'u')" Điều này không cần thiết đối với tôi (Ubuntu 13.04). Nó đã tắt khả năng tương thích với DOS và sử dụng Sectors theo mặc định. Nhấn cuthực sự chuyển sang chế độ không dùng nữa.
wisbucky

6
Giải pháp hoạt động tuyệt vời nhưng trường hợp bị mắc kẹt ở "1/2 lần kiểm tra đã vượt qua" với dấu chấm than (ReadHat 6.5). Để khắc phục điều này, tôi đã đặt "hình trụ đầu tiên" thành 16 (giống như trước đây). Sau đó phiên bản bắt đầu bình thường với "2/2 lần kiểm tra được thông qua". Hy vọng điều này sẽ giúp ai đó ...
user3586516

1
Tôi cũng phải thay đổi hình trụ đầu tiên, nhưng tôi phải thay đổi nó thành 2048. Tôi khuyên bạn nên kiểm tra cài đặt phân vùng hiện tại của mình trước khi xóa nó.
Doyley

9
Sau khi khởi động lại phiên bản của mình, tôi không thể kết nối qua SSH. Kết nối hết thời gian chờ và bảng điều khiển aws cho thấy rằng nó không thể bắt đầu Kiểm tra trạng thái của nó. Tôi nghĩ nó đã chết. Bất kỳ ý tưởng phải làm gì?
Richard

5
Câu trả lời này hiện không được dùng nữa vì AWS hỗ trợ thay đổi kích thước trực tuyến cho các tập EBS.
Dale Anderson

303

Không cần dừng phiên bản và tách EBS volume để thay đổi kích thước nữa!

Ngày 13 tháng 2 năm 2017 Amazon đã công bố: " Bản cập nhật Amazon EBS - Các khối lượng đàn hồi mới thay đổi mọi thứ "

Quá trình hoạt động ngay cả khi khối lượng cần mở rộng là khối lượng gốc của phiên bản đang chạy!


Giả sử chúng tôi muốn tăng ổ đĩa khởi động của Ubuntu từ 8G lên 16G "ngay lập tức".

bước-1) đăng nhập vào bảng điều khiển web AWS -> EBS -> nhấp chuột phải vào mục bạn muốn thay đổi kích thước -> "Sửa đổi âm lượng" -> thay đổi trường "Kích thước" và nhấp vào nút [Sửa đổi]

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


bước-2) ssh vào phiên bản và thay đổi kích thước phân vùng:

hãy liệt kê các thiết bị chặn được đính kèm vào hộp của chúng tôi:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

Như bạn có thể thấy / dev / xvda1 vẫn là phân vùng 8 GiB trên thiết bị 16 GiB và không có phân vùng nào khác trên ổ đĩa. Hãy sử dụng "growpart" để thay đổi kích thước phân vùng 8G lên đến 16G:

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

# resize partition
growpart /dev/xvda 1

Hãy kiểm tra kết quả (bạn có thể thấy / dev / xvda1 hiện là 16G):

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

Rất nhiều câu trả lời SO gợi ý sử dụng fdisk với xóa / tạo lại phân vùng, đây là quá trình khó chịu, rủi ro, dễ xảy ra lỗi, đặc biệt là khi chúng ta thay đổi ổ đĩa khởi động.


bước-3) thay đổi kích thước hệ thống tệp để phát triển tất cả các cách để sử dụng hoàn toàn không gian phân vùng mới
# 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% /

Vì vậy, chúng tôi không có thời gian chết và rất nhiều không gian mới để sử dụng.
Thưởng thức!

Cập nhật: Cập nhật: Sử dụng sudo xfs_growfs / dev / xvda1 thay vì resize2fs khi hệ thống tệp XFS.


thay đổi kích thước phân vùng là một trợ giúp lớn .... !! Điều tuyệt vời nhất là nó hoạt động ngay cả với khối lượng gốc.
piyushmandovra

4
Ai đó sẽ vui lòng chấp nhận đây là câu trả lời chính xác? Chỉ vì ... nó đúng như vậy.
eduardohl

Rắn, nhờ một tấn ... Tôi đã rất hoài nghi trong việc thực hiện các bước được đề cập trong câu trả lời ở trên nhưng điều này đã được như vậy damn mát ...
AAgg

4
Huh, các tài liệu chính thức không đề cập đến growpart, đó là lý do tại sao tôi không thể làm cho nó hoạt động trước đây. Cảm ơn!
Ibrahim

1
@Shihas, vâng. Đó là toàn bộ vấn đề. Ngay cả ổ gắn "root" có thể khởi động có thể được tăng lên một cách an toàn mà không cần khởi động lại!
Dmitry Shevkoplyas

42

Nhận xét hoàn hảo của jperelli ở trên.

Tôi phải đối mặt với cùng một vấn đề ngày hôm nay. Tài liệu AWS không đề cập rõ ràng đến growpart. Tôi đã tìm ra cách khó và thực sự hai lệnh đã hoạt động hoàn hảo trên M4.large & M4.xlarge với Ubuntu

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

câu trả lời thứ hai để đính kèm và câu trả lời này là để thay đổi kích thước
Adiii

Kinh ngạc! đã làm việc trên phiên bản t2.small của tôi. Chà. Nghĩ rằng nó sẽ đẫm máu hơn thế. Cảm ơn!
publicknowledge

Tôi dường như không thể cài đặt cloud-guest-utils có chứa growpart. Phiên bản Linux 3.16.0-4-amd64
nettie

15

[GIẢI QUYẾT]

Đây là những gì nó phải được thực hiện

  1. Dừng phiên bản
  2. Tạo ảnh chụp nhanh từ tập
  3. Tạo một tập mới dựa trên ảnh chụp nhanh tăng kích thước
  4. Kiểm tra và ghi nhớ điểm gắn kết khối lượng hiện tại (ví dụ / dev / sda1)
  5. Tách âm lượng hiện tại
  6. Đính kèm ổ đĩa đã tạo gần đây vào phiên bản, đặt điểm gắn kết chính xác
  7. Khởi động lại phiên bản
  8. Truy cập qua SSH vào phiên bản và chạy fdisk /dev/xvde
  9. Nhấn pđể hiển thị các phân vùng hiện tại
  10. Nhấn dđể xóa các phân vùng hiện tại (nếu có nhiều hơn một, bạn phải xóa từng phân vùng một) LƯU Ý: Đừng lo lắng dữ liệu không bị mất
  11. Nhấn nđể tạo một phân vùng mới
  12. Nhấn pđể đặt nó làm chính
  13. Nhấn 1để đặt hình trụ đầu tiên
  14. Đặt không gian mới mong muốn (nếu trống toàn bộ không gian được dành riêng)
  15. Nhấn ađể làm cho nó có thể khởi động
  16. Nhấn 1wghi các thay đổi
  17. Khởi động lại phiên bản
  18. Đăng nhập qua SSH và chạy resize2fs /dev/xvde1
  19. Cuối cùng kiểm tra không gian mới đang chạy df -h

Đây là nó

Chúc may mắn!


1
Trong các ổ đĩa Amazon EBS, điều quan trọng là phải sử dụng cùng một điểm gắn kết trong resize2fs như bạn sử dụng với fdisk. df hiển thị một cái gì đó như / dev / xvda1 dưới dạng ổ đĩa EBS đính kèm, nhưng lệnh resize2fs chỉ hoạt động với tôi khi tôi sử dụng định danh / dev / sdf1, mà tôi đã sử dụng khi tạo phân vùng mới trong fdisk.
Garreth McDaid

Đây là trong tài liệu AWS. Điều kém cỏi là thủ tục của họ vẫn chưa hoàn thiện sau 3 năm việc này diễn ra. Nếu bạn có một hình ảnh, bạn có thể quay trở lại, chắc chắn. Luôn luôn có thể tạm thời treo đĩa mới từ một phiên bản đang chạy trên máy tính để bàn, nhưng cần nó được gắn kết để thay đổi kích thước có thể là một vấn đề nếu bạn đang nghĩ đến việc sử dụng gparted. gcloud thay đổi kích thước một cách nhanh chóng.
mckenzm

Thiết bị lưu trữ của tôi (/ dev / xvda1) bắt đầu ở khu vực 16065, không phải khu vực 1. Vì vậy, bước 13 (Lượt 1 để đặt hình trụ đầu tiên) trong trường hợp của tôi phải là 16065.
Simon Paarlberg

Không sử dụng các giải pháp này, bạn có thể mất dữ liệu của mình. Trên thực tế, tôi đã tìm ra không chọn tùy chọn xóa phân vùng nếu hiển thị giá trị danh sách phân vùng trong bảng phân vùng, vì nếu danh sách ở đó thì nó sẽ xóa phân vùng theo đúng nghĩa đen, vì vậy dữ liệu sẽ bị mất ngay cả khi câu trả lời nói "Nó sẽ không xóa bỏ". Có một cách để mở rộng kích thước phân vùng, hãy kiểm tra ở dưới cùng có các tiện ích khác sẽ giúp mở rộng kích thước phân vùng của bạn một cách suôn sẻ.
piyushmandovra

6
  1. đăng nhập vào bảng điều khiển web AWS -> EBS -> nhấp chuột phải vào mục bạn muốn thay đổi kích thước -> "Sửa đổi âm lượng" -> thay đổi trường "Kích thước" và nhấp vào nút [Sửa đổi]

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

Đây là phiên bản rượt đuổi của Dmitry Shevkoplyas. Tài liệu AWS không hiển thị growpartlệnh. Điều này hoạt động tốt cho ubuntu AMI.


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

hai lệnh trên đã tiết kiệm thời gian của tôi cho các phiên bản AWS ubuntu ec2.



4

Đề phòng nếu có ai ở đây sử dụng nền tảng đám mây Google GCP,
hãy thử điều này:

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

2

Bạn đã tạo một phân vùng trên tập này? Nếu bạn đã làm như vậy, bạn sẽ cần phải phát triển phân vùng trước.


không tôi không làm. Tôi có nên làm điều đó không? Ghi khối lượng này mới Tôi có kèm theo là phải có tất cả các dữ liệu trước đó bởi vì nó là một bản chụp của khối lượng ban đầu
Wilman Arambillete

Không. Nhưng tôi đã gặp lỗi đó nếu có một phân vùng được đính kèm. Hãy kiểm tra lại xem bạn đã đặt đúng kích thước ổ đĩa chưa và kiểm tra kỹ xem bạn đã lắp ổ đĩa mới chưa.
chantheman

Ngoài ra, bạn không cần phải dừng phiên bản để thực hiện việc này. Sẽ là an toàn nếu bạn đã ghi trên ổ đĩa đó, nhưng bạn có thể chụp nhanh nó khi phiên bản đang chạy.
chantheman

1

Cờ khởi động (a) không hoạt động trong trường hợp của tôi (EC2, centos6.5), vì vậy tôi phải tạo lại âm lượng từ ảnh chụp nhanh. Sau khi lặp lại tất cả các bước NGOẠI TRỪ cờ có khả năng khởi động - mọi thứ hoạt động hoàn hảo vì vậy tôi có thể thay đổi kích thước2fs sau đó. Cảm ơn bạn!


1

Cảm ơn @Dimitry, nó hoạt động như một sự quyến rũ với một thay đổi nhỏ để phù hợp với hệ thống tệp của tôi.

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

Sau đó, sử dụng lệnh sau, thay thế điểm gắn kết của hệ thống tệp (hệ thống tệp XFS phải được gắn kết để thay đổi kích thước chúng):

[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

Lưu ý Nếu bạn nhận được lỗi xfsctl: Lỗi không thể cấp phát bộ nhớ, bạn có thể cần cập nhật nhân Linux trên phiên bản của mình. Để biết thêm thông tin, hãy tham khảo tài liệu hệ điều hành cụ thể của bạn. Nếu bạn nhận được Hệ thống tập tin đã dài nnnnnnn khối. Không có gì làm! , hãy xem Mở rộng phân vùng Linux.


0

Không có đủ đại diện để bình luận ở trên; nhưng cũng lưu ý theo các nhận xét ở trên rằng bạn có thể làm hỏng phiên bản của mình nếu bạn bắt đầu từ 1; nếu bạn nhấn 'u' sau khi khởi động fdisk trước khi liệt kê các phân vùng của mình bằng 'p', điều này sẽ cung cấp cho bạn số bắt đầu chính xác để bạn không làm hỏng ổ đĩa của mình. Đối với centos 6,5 AMI, cũng như đã đề cập ở trên, 2048 đã đúng với tôi.


0

Vì vậy, trong trường hợp bất kỳ ai gặp sự cố khi họ gặp phải sự cố này với 100% sử dụng và không có dung lượng để chạy lệnh growpart (vì nó tạo một tệp trong / tmp)

Đây là một lệnh mà tôi thấy rằng bỏ qua ngay cả khi âm lượng EBS đang được sử dụng và cũng như nếu bạn không còn dung lượng trên ec2 của mình và bạn đang ở 100%

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

xem trang web này ở đây:

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


Lệnh này phải được theo sau sudo resize2fs /dev/xvda1để cập nhật /etc/fstab, chỉ sau đó df -hsẽ hiển thị dung lượng ổ đĩa lớn hơn
karmendra

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.