Drive EC2 bukan ukuran volume EBS

18

Saya memiliki instance EC2 yang saya buat volume EBS 500GB untuk. Sayangnya, instance EC2 hanya menampilkan 8GB.

Saya hanya punya satu drive, yang benar.

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

Tapi, drive itu hanya 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

Tetapi, fdisk dan / proc / partisi keduanya menunjukkan ukuran yang benar

[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

Bantuan apa pun akan sangat dihargai, terima kasih.

Kristen
sumber

Jawaban:

34

Jika sistem file root adalah ext3 atau ext4, kemudian jalankan:

sudo resize2fs /dev/xvda1

Jika sistem file root adalah xfs (kurang umum), kemudian jalankan:

sudo xfs_growfs /

Anda dapat menghilangkan "sudo" jika Anda login sebagai root.

Perintah-perintah ini harus dijalankan saat sistem sedang berjalan dan sistem file sudah terpasang.

Ini standar untuk volume EBS untuk tidak mengandung tabel partisi. Volume EBS umumnya diformat sebagai sistem file secara keseluruhan tanpa partisi.

Eric Hammond
sumber
2
Membuat saya kesal ketika orang-orang memilih Anda tanpa penjelasan. Bagaimanapun, ini bekerja dengan baik. Terima kasih banyak!
Christian
1
/ Aku mengangkat bahu dan melanjutkan hidup :-) Senang membantu. Berikut adalah beberapa artikel terkait yang saya tulis: alestic.com/2009/12/ec2-ebs-boot-resize alestic.com/2010/02/ec2-resize-running-ebs-root
Eric Hammond
2
Perhatikan bahwa paket cloud-init yang termasuk dalam AMI Ubuntu secara otomatis menjalankan resize2fs saat boot. Saya terkejut ini bukan di Amazon Linux karena mereka juga menggunakan cloud-init.
Eric Hammond
4
Saya memiliki masalah yang sama dan ketika saya menjalankan perintah itu mengatakan: Sistem file sudah 2096896 blok. Tidak ada yang bisa dilakukan! Masih 8GB!
Neo
12

Jawaban di sini tampaknya tidak ada beberapa langkah sebelum mengubah ukuran khusus untuk orang-orang yang mengubah ukuran volume EBS mereka. Jika Anda telah menggunakan snapshot untuk membuat EBS atau dengan AMI tertentu, Anda perlu menambah disk (xvda), perpanjang partisi (xvda1), kemudian rentangkan sistem file (/).

Jika saya membaca ini dengan benar, disk Anda terlihat seperti ini:

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

Perlu terlihat seperti ini:

/dev/xvda
|______________________/dev/xvda1______________________|

Setelah itu, menjalankan resize2fsakan tumbuh ke dalam ruang baru di dalamnya xvda1, menggunakan fdiskkita dapat meningkatkan ukuran blok dengan menghapus dan membuatnya lagi dan membuat partisi dapat di-boot. yang dibutuhkan hanyalah reboot. Dalam kebanyakan kasus itu seharusnya tidak mempengaruhi data Anda jika Anda menggunakan silinder mulai yang sama tetapi Perhatikan bahwa setiap kesalahan dalam menciptakan kembali partion akan mengakibatkan kehilangan semua data dan / atau server tidak akan reboot. Saya akan merekomendasikan melakukan ini sebagai langkah pertama pada contoh yang baru dibuat. Kalau tidak, ambil snapshot Penyimpanan EC2 EBS Anda / dll.

Saya telah menandai langkah-langkahnya dengan << # >> di blok di bawah, jadi ini bukan bagian dari perintah. Anda memerlukan izin root, jadi lakukan "sudo sh" jika Anda tidak 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 [~]#
Neo
sumber
1
Memperluas partisi hanya diperlukan jika volume dipartisi. Itu cukup langka di EC2. Praktik terbaik yang umum dengan EBS adalah memformat seluruh volume mentah dengan sistem file tanpa memposisikannya terlebih dahulu. Ini terutama berlaku untuk volume boot. Penentuan posisi adalah artifak disk fisik, yang ukurannya tidak sesuai dengan yang Anda inginkan untuk sistem file Anda. Pada EC2, Anda cukup membuat volume EBS dengan ukuran yang tepat dan menjatuhkan sistem file pada volume mentah tanpa partisi.
Eric Hammond
1
Saya tidak tahu tentang langka, itu terjadi pada saya pada kedua contoh CentOS EC2 yang saya luncurkan dengan Generic SSD EBS Storage.
Neo
Siapa yang menerbitkan CentOS AMI yang Anda gunakan?
Eric Hammond
@EricHammond centos.org
Neo
4
Saya akan merekomendasikan mengajukan permohonan centos.org untuk berhenti membangun AMI dengan volume EBS root yang dipartisi. Tidak ada manfaatnya jika Anda menggunakan partisi tunggal dan ini membuat pengubahan ukuran menjadi lebih sulit. Amazon tidak melakukan ini dengan AMI mereka. Ubuntu, Red Hat, dan lainnya juga tidak. Ini adalah praktik terbaik untuk hanya meletakkan sistem file pada volume EBS mentah tanpa hambatan tambahan yang tidak perlu yang perlu dipindahkan di sekitar ukuran.
Eric Hammond
2

Ubah ukuran sistem file pada volume EBS. Jika Anda menjalankan ext3(yang biasanya merupakan default), Anda bisa menjalankannya e2resize /dev/xvda1.

womble
sumber
Volume pertama harus offline dan dis-mount.
Farhan
1
Tidak dengan distribusi Linux modern yang samar - samar sekalipun . Perluasan sistem file ext3 online telah didukung selama bertahun-tahun.
womble
Terima kasih womble, saya menggunakan dists aws dan e2resize tidak ada di sana. Itu juga tidak ada dalam repo yum. Haruskah saya mendapatkan sumbernya dan membangunnya sendiri?
Christian
1

Saya mencoba jawaban dari @Neo dengan contoh yang dibuat dari AMI Ubuntu kustom. Penjelasannya sangat membantu tetapi saya perlu menjaga unit sebagai blok dan lewati saja langkah # 4. Itu kemudian bekerja dengan sempurna.

Juga satu poin saja adalah bahwa pada langkah # 5 Anda harus menyalin blok awal / silinder untuk digunakan pada langkah # 10.

@ Neo menjawab jika Anda memiliki perangkat disk virtual yang dipartisi. Anda dapat menemukan jika Anda menderita masalah ini dengan yang berikut ini: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / xvda dan xvda1 memiliki ukuran yang sangat berbeda. Anda dapat mengubah ukuran2fs dan itu tidak akan membuat perbedaan, dalam kasus saya xvda1 adalah 5G dan hanya itu yang akan digunakan oleh sistem file.

Terima kasih, @Neo

David B
sumber