EC2 Tidak dapat mengubah ukuran volume setelah memperbesar ukuran

95

Saya telah mengikuti langkah-langkah untuk mengubah ukuran volume EC2

  1. Menghentikan instance
  2. Mengambil snapshot dari volume saat ini
  3. Membuat volume baru dari snapshot sebelumnya dengan ukuran yang lebih besar di wilayah yang sama
  4. Menurunkan volume lama dari instance
  5. Volume baru telah dilampirkan ke instance pada titik pemasangan yang sama

Volume lama adalah 5GB dan yang saya buat adalah 100GB Sekarang, ketika saya memulai ulang instance dan menjalankannya df -h Imasih melihat ini

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

Inilah yang saya dapatkan saat berlari

sudo resize2fs /dev/xvde1

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

Jika saya lari, cat /proc/partitionssaya mengerti

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

Dari apa yang saya pahami jika saya telah mengikuti langkah yang benar xvde harus memiliki data yang sama dengan xvde1 tetapi saya tidak tahu cara menggunakannya

Bagaimana cara menggunakan volume baru atau umount xvde1 dan memasang xvde sebagai gantinya?

Saya tidak mengerti apa yang saya lakukan salah

Saya juga mencoba sudo ifs_growfs /dev/xvde1

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

Btw, ini kotak linux dengan centos 6.2 x86_64

Terima kasih sebelumnya atas bantuan Anda

Wilman Arambillete
sumber

Jawaban:

71

Terima kasih Wilman, perintah Anda bekerja dengan benar, perbaikan kecil perlu dipertimbangkan jika kami meningkatkan EBS menjadi ukuran yang lebih besar

  1. Hentikan contoh
  2. Buat snapshot dari volume
  3. Buat volume baru berdasarkan snapshot yang meningkatkan ukurannya
  4. Periksa dan ingat titik pemasangan volume saat ini (mis. /dev/sda1)
  5. Lepaskan volume saat ini
  6. Lampirkan volume yang baru dibuat ke instance, dengan menyetel titik pemasangan yang tepat
  7. Mulai ulang instance
  8. Akses melalui SSH ke instance dan jalankan fdisk /dev/xvde

    PERINGATAN: Mode yang kompatibel dengan DOS tidak digunakan lagi. Sangat disarankan untuk mematikan mode (perintah 'c') dan mengubah unit tampilan ke sektor (perintah 'u')

  9. Tekan puntuk menampilkan partisi saat ini

  10. Tekan duntuk menghapus partisi saat ini (jika ada lebih dari satu, Anda harus menghapus satu per satu) CATATAN: Jangan khawatir data tidak hilang
  11. Tekan nuntuk membuat partisi baru
  12. Tekan puntuk mengaturnya sebagai yang utama
  13. Tekan 1untuk menyetel silinder pertama
  14. Atur ruang baru yang diinginkan (jika kosong seluruh ruang dicadangkan)
  15. Tekan auntuk membuatnya dapat di-boot
  16. Tekan 1dan wtulis perubahan
  17. Reboot instance ATAU gunakan partprobe(dari partedpaket) untuk memberi tahu kernel tentang tabel partisi baru
  18. Masuk melalui SSH dan jalankan resize2fs / dev / xvde1
  19. Terakhir, periksa ruang baru yang menjalankan df -h
dcf
sumber
1
PERINGATAN: Mode yang kompatibel dengan DOS tidak digunakan lagi. Sangat disarankan untuk mematikan mode (perintah 'c') dan mengubah unit tampilan ke sektor (perintah 'u') " Ini tidak diperlukan bagi saya (Ubuntu 13.04). Itu sudah mematikan kompatibilitas DOS dan menggunakan Sektor secara default. Menekan cdan ubenar - benar beralih KE mode yang tidak berlaku lagi.
wisbucky
6
Solusi ini bekerja dengan sangat baik tetapi instance terhenti pada "1/2 pemeriksaan lulus" dengan tanda seru (ReadHat 6.5). Untuk mengatasinya saya telah mengatur "silinder pertama" menjadi 16 (seperti sebelumnya). Setelah itu, instance mulai normal dengan "2/2 pemeriksaan berlalu". Semoga ini membantu seseorang ...
pengguna3586516
1
Saya juga harus mengganti silinder pertama, tetapi saya harus mengubahnya ke 2048. Saya akan merekomendasikan untuk memeriksa pengaturan partisi Anda saat ini sebelum menghapusnya.
Doyley
9
Setelah saya mem-boot ulang instance saya, saya tidak dapat terhubung melalui SSH. Waktu koneksi habis dan konsol aws menunjukkan bahwa ia tidak dapat memulai Pemeriksaan Statusnya. Saya pikir itu sudah mati. Ada ide untuk dilakukan?
Richard
5
Jawaban ini sekarang sudah tidak berlaku lagi karena AWS mendukung pengubahan ukuran online untuk volume EBS.
Dale Anderson
309

Tidak perlu menghentikan instans dan melepaskan volume EBS untuk mengubah ukurannya lagi!

13-Feb-2017 Amazon mengumumkan: " Pembaruan Amazon EBS - Volume Elastis Baru Mengubah Segalanya "

Prosesnya bekerja bahkan jika volume yang akan diperluas adalah volume root dari instance yang berjalan!


Katakanlah kita ingin meningkatkan drive boot Ubuntu dari 8G menjadi 16G "on-the-fly".

langkah-1) masuk ke konsol web AWS -> EBS -> klik kanan mouse pada yang ingin Anda ubah ukurannya -> "Ubah Volume" -> ubah bidang "Ukuran" dan klik tombol [Ubah]

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


langkah-2) ssh ke dalam instance dan ubah ukuran partisi:

mari daftar perangkat blok yang terpasang ke kotak kita:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

Seperti yang Anda lihat, / dev / xvda1 masih berupa partisi 8 GiB pada perangkat 16 GiB dan tidak ada partisi lain pada volume tersebut. Mari gunakan "growpart" untuk mengubah ukuran partisi 8G menjadi 16G:

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

# resize partition
growpart /dev/xvda 1

Mari kita periksa hasilnya (Anda dapat melihat / dev / xvda1 sekarang 16G):

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

Banyak jawaban SO menyarankan untuk menggunakan fdisk dengan partisi hapus / buat ulang, yang merupakan proses yang buruk, berisiko, rawan kesalahan terutama ketika kita mengubah boot drive.


langkah-3) mengubah ukuran sistem file agar berkembang sepenuhnya untuk menggunakan ruang partisi baru sepenuhnya
# 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% /

Jadi kami tidak memiliki waktu henti dan banyak ruang baru untuk digunakan.
Nikmati!

Pembaruan: Perbarui: Gunakan sudo xfs_growfs / dev / xvda1 alih-alih resize2fs saat sistem file XFS.

Dmitry Shevkoplyas
sumber
mengubah ukuran partisi sangat membantu .... !! Hal yang paling menakjubkan adalah itu bekerja bahkan untuk volume root.
piyushmandovra
4
Akankah seseorang menerima ini sebagai jawaban yang benar? Hanya karena ... itu.
eduardohl
Solid, terima kasih banyak ... Saya sangat skeptis dalam melakukan langkah-langkah yang disebutkan dalam jawaban di atas, tetapi ini sangat keren ...
AAgg
4
Huh, dokumen resmi tidak menyebutkan growpart, itulah sebabnya saya tidak bisa membuat ini berfungsi sebelumnya. Terima kasih!
Ibrahim
1
@ Shihas, ya. Itulah intinya. Bahkan drive terpasang "root" yang dapat di-boot dapat ditingkatkan dengan aman tanpa perlu reboot!
Dmitry Shevkoplyas
42

Prefek komentar oleh jperelli di atas.

Saya menghadapi masalah yang sama hari ini. Dokumentasi AWS tidak secara jelas menyebutkan growpart. Saya menemukan cara yang sulit dan memang kedua perintah itu bekerja dengan sempurna di M4.large & M4.xlarge dengan Ubuntu

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1
Sachin Shintre
sumber
jawaban kedua untuk melampirkan dan jawaban ini untuk mengubah ukuran
Adiii
Luar biasa! bekerja pada contoh t2.small saya. Wah. Pikir itu akan lebih berdarah dari itu. Terima kasih!
publicknowledge
Sepertinya saya tidak dapat menginstal cloud-guest-utils yang berisi growpart. Linux versi 3.16.0-4-amd64
nettie
16

[TERPECAHKAN]

Inilah yang harus dilakukan

  1. Hentikan contoh
  2. Buat snapshot dari volume
  3. Buat volume baru berdasarkan snapshot yang meningkatkan ukurannya
  4. Periksa dan ingat titik mount volume saat ini (yaitu / dev / sda1)
  5. Lepaskan volume saat ini
  6. Lampirkan volume yang baru dibuat ke instance, dengan menyetel titik pemasangan yang tepat
  7. Mulai ulang instance
  8. Akses melalui SSH ke instance dan jalankan fdisk /dev/xvde
  9. Tekan puntuk menampilkan partisi saat ini
  10. Memukul duntuk menghapus partisi saat ini (jika ada lebih dari satu, Anda harus menghapus satu per satu) CATATAN: Jangan khawatir data tidak hilang
  11. Tekan nuntuk membuat partisi baru
  12. Tekan puntuk mengaturnya sebagai yang utama
  13. Tekan 1untuk menyetel silinder pertama
  14. Atur ruang baru yang diinginkan (jika kosong seluruh ruang dicadangkan)
  15. Tekan auntuk membuatnya dapat di-boot
  16. Tekan 1dan wtulis perubahan
  17. Mulai ulang instance
  18. Masuk melalui SSH dan jalankan resize2fs /dev/xvde1
  19. Terakhir, periksa ruang baru yang sedang berjalan df -h

Ini dia

Semoga berhasil!

Wilman Arambillete
sumber
1
Dalam volume Amazon EBS, tampaknya penting untuk menggunakan titik pemasangan yang sama di resize2fs seperti yang Anda gunakan dengan fdisk. df menampilkan sesuatu seperti / dev / xvda1 sebagai volume EBS yang terlampir, tetapi perintah resize2fs hanya berfungsi untuk saya ketika saya menggunakan pengenal / dev / sdf1, yang telah saya gunakan ketika saya melakukan partisi baru di fdisk.
Garreth McDaid
Ini ada di dokumentasi AWS. Yang buruk adalah prosedur mereka masih belum selesai setelah 3 tahun ini berlangsung. Jika Anda memiliki gambar, Anda bisa mundur, tentu. Selalu mungkin untuk menggantungkan sementara disk baru dari sebuah instance yang menjalankan desktop juga, tetapi membutuhkannya untuk dipasang untuk pengubahan ukuran bisa menjadi masalah jika Anda berpikir untuk menggunakan gparted. gcloud mengubah ukuran dengan cepat.
mckenzm
Perangkat penyimpanan saya (/ dev / xvda1) dimulai pada sektor 16065, bukan sektor 1. Jadi langkah 13 (Tekan 1 untuk menyetel silinder pertama) harus 16065 dalam kasus saya.
Simon Paarlberg
Jangan pergi dengan solusi ini, Anda mungkin kehilangan data Anda. Sebenarnya, saya menemukan tidak menggunakan opsi hapus partisi jika menampilkan nilai daftar partisi di tabel partisi, karena jika daftar ada di sana maka itu benar-benar menghapus partisi, jadi data akan hilang bahkan jika jawaban mengatakan "Tidak akan menghapus". Ada cara untuk memperbesar ukuran partisi, periksa di bagian bawah ada utilitas lain yang akan membantu memperluas ukuran partisi Anda dengan lancar.
piyushmandovra
6
  1. masuk ke konsol web AWS -> EBS -> klik kanan mouse pada yang ingin Anda ubah ukurannya -> "Ubah Volume" -> ubah bidang "Ukuran" dan klik tombol [Ubah]

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

Ini adalah versi cut-to-the-chase dari jawaban Dmitry Shevkoplyas. Dokumentasi AWS tidak menunjukkan growpartperintah. Ini berfungsi dengan baik untuk ubuntu AMI.

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

dua perintah di atas menghemat waktu saya untuk instans AWS ubuntu ec2.

HD298
sumber
5

Ini akan berfungsi untuk sistem file xfs cukup jalankan perintah ini

xfs_growfs /
Saurabh Chandra Patel
sumber
buat hariku ... myWEEK!
Cristian Sepulveda
4

Untuk berjaga-jaga jika ada orang di sini untuk GCP Google Cloud Platform,
Coba ini:

sudo growpart /dev/sdb 1
sudo resize2fs /dev/sdb1
yunus
sumber
2

Apakah Anda membuat partisi di volume ini? Jika ya, Anda perlu menumbuhkan partisi tersebut terlebih dahulu.

chantheman
sumber
tidak, aku tidak melakukannya. Haruskah saya? Bagaimana cara melakukannya? Ingat volume baru yang saya lampirkan ini seharusnya memiliki semua data sebelumnya karena ini adalah snapshot dari volume asli
Wilman Arambillete
Tidak. Tapi saya mendapatkan kesalahan itu jika ada partisi yang terpasang. Pergi dan periksa kembali apakah Anda membuat volume dengan ukuran yang benar, dan periksa kembali apakah Anda memasang volume baru.
Chantheman
Selain itu, Anda tidak perlu menghentikan instance untuk melakukan ini. Aman jika Anda telah menulis pada volume itu, tetapi Anda dapat mengambil snapshotnya dengan instance yang sedang berjalan.
Chantheman
1

Bendera yang dapat di-boot (a) tidak berfungsi dalam kasus saya (EC2, centos6.5), jadi saya harus membuat ulang volume dari snapshot. Setelah mengulangi semua langkah KECUALI flag bootable - semuanya bekerja dengan sempurna sehingga saya dapat mengubah ukuran2fs setelahnya. Terima kasih!

sandr
sumber
1

Terima kasih, @Dimitry, ini berfungsi seperti pesona dengan sedikit perubahan agar sesuai dengan sistem file saya.

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

Kemudian gunakan perintah berikut, menggantikan titik pemasangan sistem file (sistem file XFS harus dipasang untuk mengubah ukurannya):

[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

Catatan Jika Anda menerima xfsctl gagal: Tidak dapat mengalokasikan kesalahan memori, Anda mungkin perlu memperbarui kernel Linux pada contoh Anda. Untuk informasi lebih lanjut, lihat dokumentasi spesifik sistem operasi Anda. Jika Anda menerima sistem file sudah nnnnnnn blok panjang. Tidak ada yang bisa dilakukan! kesalahan, lihat Memperluas Partisi Linux.

pengguna2125117
sumber
0

Tidak memiliki cukup perwakilan untuk berkomentar di atas; tetapi juga perhatikan komentar di atas bahwa Anda dapat merusak instance Anda jika Anda mulai dari 1; jika Anda menekan 'u' setelah memulai fdisk sebelum Anda mendaftarkan partisi Anda dengan 'p' ini akan memberikan nomor awal yang benar sehingga Anda tidak merusak volume Anda. Untuk centos 6.5 AMI, juga seperti yang disebutkan di atas 2048 benar untuk saya.

Reece
sumber
0

Jadi jika ada yang memiliki masalah di mana mereka mengalami masalah ini dengan penggunaan 100%, dan tidak ada ruang untuk menjalankan perintah growpart (karena itu membuat file di / tmp)

Berikut adalah perintah yang saya temukan yang melewati bahkan saat volume EBS sedang digunakan, dan juga jika Anda tidak memiliki ruang tersisa di ec2 Anda, dan Anda berada di 100%

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

lihat situs ini di sini:

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

CodeJunkie
sumber
Perintah ini harus diikuti oleh sudo resize2fs /dev/xvda1untuk memperbarui /etc/fstab, hanya setelah itu df -hakan menunjukkan ruang disk yang bertambah
karmendra