Ổ đĩa EC2 không phải kích thước âm lượng EBS


18

Tôi có một phiên bản EC2 mà tôi đã tạo ra một ổ EBS 500GB cho. Thật không may, phiên bản EC2 chỉ hiển thị 8GB.

Tôi chỉ có một ổ đĩa, đó là đúng.

[root@ip-10-244-134-250 ~]# ls -la /dev/x*
brw-rw---- 1 root disk 202, 1 Aug  7 08:54 /dev/xvda1

Nhưng, ổ đĩa đó chỉ có 8GB

[root@ip-10-244-134-250 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            8.0G  1.3G  6.7G  16% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm

Nhưng, cả fdisk và / Proc / phân vùng đều hiển thị kích thước chính xác

[root@ip-10-244-134-250 ~]# fdisk -l

Disk /dev/xvda1: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/xvda1 doesn't contain a valid partition table

[root@ip-10-244-134-250 ~]# cat /proc/partitions 
major minor  #blocks  name

 202        1  524288000 xvda1

Mọi sự trợ giúp đều rất được trân trọng, xin cảm ơn.

Câu trả lời:


34

Nếu hệ thống tập tin gốc là ext3 hoặc ext4, thì hãy chạy:

sudo resize2fs /dev/xvda1

Nếu hệ thống tệp gốc là xfs (ít phổ biến hơn), thì hãy chạy:

sudo xfs_growfs /

Bạn có thể bỏ qua "sudo" nếu bạn đã đăng nhập bằng root.

Các lệnh này nên được chạy trong khi hệ thống đang chạy và hệ thống tệp được gắn kết.

Đó là tiêu chuẩn cho khối lượng EBS không chứa bảng phân vùng. Khối lượng EBS thường được định dạng toàn bộ như một hệ thống tệp mà không có phân vùng.


2
Kích thích tôi khi mọi người bỏ phiếu cho bạn mà không có lời giải thích. Dù sao, điều này làm việc rất đẹp. Cảm ơn rất nhiều!
Christian

1
/ tôi nhún vai và tiếp tục cuộc sống :-) Vui mừng được giúp đỡ. Dưới đây là một vài bài viết liên quan mà tôi đã viết: alatural.com/2009/12/ec2-ebs-boot-resize alatural.com/2010/02/ec2-resize-rucky-ebs-root
Eric Hammond

2
Lưu ý rằng gói cloud-init có trong Ubuntu AMIs tự động chạy resize2fs khi khởi động. Tôi ngạc nhiên điều này không có trong Amazon Linux vì họ cũng đang sử dụng cloud-init.
Eric Hammond

4
Tôi có cùng một vấn đề và khi tôi chạy lệnh, nó báo: Hệ thống tập tin đã dài 2096896. Không có gì làm! Nó vẫn là 8GB!
Neo

12

Các câu trả lời ở đây dường như còn thiếu một vài bước trước khi định cỡ lại đặc biệt cho những người đang thay đổi kích thước âm lượng EBS của họ. Nếu bạn đã sử dụng ảnh chụp nhanh để tạo EBS hoặc với một số AMI nhất định, bạn sẽ cần mở rộng đĩa (xvda), mở rộng phân vùng (xvda1), sau đó mở rộng hệ thống tệp (/).

Nếu tôi đọc chính xác, đĩa của bạn trông như thế này:

/dev/xvda
|__/dev/xvda1__|______________ Free space______________|

Nó cần phải trông như thế này:

/dev/xvda
|______________________/dev/xvda1______________________|

Sau đó, chạy resize2fssẽ phát triển vào không gian mới bên trong xvda1, bằng cách sử dụng fdiskchúng ta có thể tăng kích thước khối bằng cách xóa và tạo lại nó và làm cho phân vùng có thể khởi động. tất cả những gì nó cần là khởi động lại. Trong hầu hết các trường hợp, nó không ảnh hưởng đến dữ liệu của bạn nếu bạn sử dụng cùng một xi lanh khởi động nhưng Lưu ý rằng bất kỳ sai lầm nào trong việc tạo lại phần sẽ dẫn đến mất tất cả dữ liệu và / hoặc máy chủ sẽ không khởi động lại. Tôi sẽ khuyên bạn nên làm điều này như bước đầu tiên trên một cá thể mới được tạo. Nếu không, hãy chụp ảnh lưu trữ EC2 EBS của bạn / v.v.

Tôi đã đánh dấu các bước bằng << # >> trong khối bên dưới, vì vậy đây không phải là một phần của lệnh. Bạn cần quyền root, vì vậy hãy thực hiện "sudo sh" nếu bạn không root.

<<1>> Look at the filesystem, it is 6G
<<2>> Look at the disk and the partition, the disk is 21.5 GB but the partition is 6 GB (6291456 blocks)
<<3>> Start fdisk for that disk (xvda, so not the partition xvda1)
<<4>> Switch to sector display.
<<5>> Print the partition(s), and remember the start sector (2048 in the example).
<<6>> Delete the partition.
<<7>> Create a new partition.
<<8>> Make it primary.
<<9>> First partition.
<<10>> Enter the old start sector, do NOT make any typo here!!! (2048 in the example) 
<<11>> Hit enter to accept the default (this is the remainder of the disk)
<<12>> Print the changes and make sure the start sector is ok, if not restart at <<6>>
<<13>> Make the partition bootable. do NOT forget this!!!
<<14>> Enter your partition number (1 in the example)
<<15>> Write the partition info back, this will end the fdisk session.
<<16>> Reboot the server, and wait for it to come up (this may take longer than usual).
<<17>> Verify the filesystem size.
<<18>> If the filesystem is not around 20Gb as expected, you can use this command.


# df -h  <<1>>

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  2.0G  3.7G  35% / 
tmpfs            15G     0   15G   0% /dev/shm

# fdisk -l  <<2>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders
Units = cylinders of 1649 * 512 = 844288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           2        7632     6291456   83  Linux

# fdisk /dev/xvda  <<3>>

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u  <<4>>
Changing display/entry units to sectors

Command (m for help): p  <<5>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    12584959     6291456   83  Linux

Command (m for help): d  <<6>>
Selected partition 1

Command (m for help): n  <<7>>
Command action
   e   extended
   p   primary partition (1-4)
p  <<8>>
Partition number (1-4): 1  <<9>>
First sector (17-41943039, default 17): 2048  <<10>>
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>>
Using default value 41943039

Command (m for help): p <<12>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

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

Command (m for help): a  <<13>>
Partition number (1-4): 1  <<14>>


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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: ...
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

# reboot  <<16>>

<wait>

# df -h  <<17>>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  2.0G   17G  11% / 
tmpfs            15G     0   15G   0% /dev/shm

# resize2fs /dev/xvda1  <<18>>
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvda1 to 5242624 (4k) blocks.
The filesystem on /dev/xvda1 is now 5242624 blocks long.

root@vs120 [~]#  df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  7.8G   11G  42% /
tmpfs           498M     0  498M   0% /dev/shm
/usr/tmpDSK     399M   11M  368M   3% /tmp
root@vs120 [~]#

1
Mở rộng phân vùng chỉ cần thiết nếu âm lượng được phân vùng. Đó là điều khá hiếm trên EC2. Cách thực hành tốt nhất phổ biến với EBS là định dạng toàn bộ khối lượng thô với hệ thống tệp mà không cần định vị trước. Điều này đặc biệt đúng với khối lượng khởi động. Định vị là một tạo phẩm của các đĩa vật lý, trong đó chúng không có kích thước bạn muốn cho các hệ thống tệp của bạn. Trên EC2, bạn chỉ cần tạo (các) âm lượng EBS có kích thước phù hợp và thả hệ thống tệp vào ổ đĩa thô không có phân vùng.
Eric Hammond

1
Tôi không biết về sự hiếm gặp, nó đã xảy ra với tôi trên cả hai phiên bản CentOS EC2 mà tôi đã khởi chạy với Bộ lưu trữ EBS SSD chung.
Neo

Ai đã xuất bản CentOS AMIs bạn đã sử dụng?
Eric Hammond

@EricHammond centos.org
Neo

4
Tôi khuyên bạn nên kiến ​​nghị centos.org để ngừng xây dựng AMI với khối lượng EBS gốc được phân vùng. Sẽ không có lợi cho việc này nếu bạn đang sử dụng một phân vùng duy nhất và nó khiến việc thay đổi kích thước trở nên khó khăn hơn. Amazon không làm điều này với AMI của họ. Ubuntu cũng không, Red Hat và những người khác. Đó là cách tốt nhất để đơn giản đặt hệ thống tệp trên khối lượng EBS thô mà không có thêm các rào cản vô dụng cần phải di chuyển xung quanh khi thay đổi kích thước.
Eric Hammond

2

Thay đổi kích thước hệ thống tập tin trên ổ đĩa EBS. Nếu bạn đang chạy ext3(thường là mặc định), bạn chỉ có thể chạy e2resize /dev/xvda1.


Âm lượng đầu tiên cần phải ngoại tuyến và không gắn kết.
Farhan

1
Không phải với bất kỳ phân phối Linux hiện đại thậm chí mơ hồ . Mở rộng trực tuyến các hệ thống tập tin ext3 đã được hỗ trợ trong nhiều năm.
womble

Cảm ơn womble, tôi đang sử dụng bản phân phối aws và e2resize không có ở đó. Nó cũng không có trong bất kỳ repo yum nào. Tôi có nên lấy nguồn và tự xây dựng nó không?
Christian

1

Tôi đã thử câu trả lời từ @Neo với một phiên bản được tạo từ Ubuntu AMI tùy chỉnh. Lời giải thích rất hữu ích nhưng tôi cần giữ các đơn vị là các khối và chỉ cần bỏ qua bước # 4. Sau đó nó hoạt động hoàn hảo.

Ngoài ra, chỉ có một điểm là ở bước 5, bạn phải sao chép khối / hình trụ bắt đầu để sử dụng ở bước # 10.

Câu trả lời của @ Neo là nếu bạn có một thiết bị đĩa ảo được phân vùng. Bạn có thể tìm thấy nếu bạn gặp phải vấn đề này với các vấn đề sau: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / xvda và xvda1 có kích thước rất khác nhau. Bạn có thể thay đổi kích thước2fs và nó sẽ không tạo ra bất kỳ sự khác biệt nào, trong trường hợp của tôi xvda1 là 5G và đó là tất cả các hệ thống tập tin sẽ sử dụng.

Cảm ơn, @Neo

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.