Tumbuh ukuran Volume EBS Amazon [ditutup]

154

Saya cukup terkesan dengan layanan EC2 dan EBS Amazon. Saya ingin tahu apakah mungkin untuk meningkatkan Volume EBS.

Sebagai contoh: Jika saya memiliki volume 50 GB dan saya mulai kehabisan ruang, dapatkah saya meningkatkannya hingga 100 GB bila diperlukan?

Nikhil Gupte
sumber
2
Saya telah menulis tutorial untuk menumbuhkan ukuran volume ebs Anda di - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik
8
Pertanyaan bagus (+1). Lebih baik cocok untuk Kesalahan Server?
Jonik
1
Harap jawab jawaban ini karena jauh lebih terkini: stackoverflow.com/a/15229477/163461
David
1
@Jonik saya sangat setuju. Bagi mereka yang dapat (dan juga setuju), pilih untuk membuka kembali pertanyaan ini sehingga dapat dimigrasi. Kecuali beberapa mod membaca ini dapat melakukan hal yang sama?
Yuck
Ini harus dimigrasikan ke Server Fault, jika tanpa alasan lain selain memungkinkan lebih banyak jawaban saat ini (seperti yang merujuk dokumentasi AWS tentang topik ini di docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
Jeromy French

Jawaban:

9

Semua rekomendasi hebat, dan saya pikir saya akan menambahkan artikel ini saya temukan, yang berkaitan dengan memperluas contoh Windows Amazon EC2 EBS menggunakan alat Amazon Web UI untuk melakukan perubahan yang diperlukan. Jika Anda tidak nyaman menggunakan CLI, ini akan membuat peningkatan Anda jauh lebih mudah.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

Terima kasih kepada TekGoblin karena memposting artikel ini.

Pat McCarten
sumber
103

Anda dapat menumbuhkan penyimpanan, tetapi tidak dapat dilakukan dengan cepat. Anda harus mengambil snapshot dari blok saat ini, menambahkan blok baru yang lebih besar dan melampirkan kembali snapshot Anda.

Ada langkah-langkah sederhana di sini berdasarkan penggunaan alat perintah EC2 Amazon

ConroyP
sumber
2
Anda juga harus mengubah ukuran sistem file. Anda mungkin mencari "resize2fs - resizer sistem file ext2 / ext3 / ext4".
James Moore
8
Saya hanya harus Google ini. Saya menekan pertanyaan ini dan video ini secara bersamaan. Ini adalah walkthough yang sangat hebat, terima kasih banyak kepada penciptanya: youtube.com/watch?v=ouYjQ3_I3BA (Saya menemukan semuanya sendiri kecuali bit resizer, seperti yang disebutkan James Moore.)
Chris Allen Lane
Ada juga cara untuk Mengatur Ukuran Volume EBS menggunakan AWS-SDK dengan terlebih dahulu menanyakan VolumeSize dari Snapshot-nya sebagai salah satu fleksibilitas pada Manfaat menggunakan EBS .
Chetabahana
Anda sebenarnya dapat mengubah ukuran volume langsung sekarang dari konsol AWS . Tampaknya hanya bekerja pada instans SSD (gp2, io1), dan Anda bahkan dapat beralih dari satu jenis ke yang lain. Saya tidak yakin kapan itu ditambahkan, tetapi ini memecahkan titik sakit utama.
STRML
44

Anda tidak bisa hanya 'menabrak' lebih banyak ruang dengan cepat jika Anda membutuhkannya, tetapi Anda dapat mengubah ukuran partisi dengan snapshot.

Langkah-langkah lakukan untuk ini:

  1. unmount volume ebs
  2. buat snapshot ebs
  3. tambahkan volume baru dengan lebih banyak ruang
  4. buat ulang tabel partisi dan ubah ukuran sistem file
  5. pasang volume ebs baru

Lihatlah http://aws.amazon.com/ebs/ - Snapshot EBS:

Snapshots juga dapat digunakan untuk instantiate beberapa volume baru, memperluas ukuran volume atau memindahkan volume melintasi Zona Ketersediaan. Saat volume baru dibuat, ada opsi untuk membuatnya berdasarkan snapshot Amazon S3 yang ada. Dalam skenario itu, volume baru dimulai sebagai replika yang tepat dari volume asli. Dengan menentukan secara spesifik ukuran volume yang berbeda atau Zona Ketersediaan yang berbeda, fungsi ini dapat digunakan sebagai cara untuk meningkatkan ukuran volume yang ada atau untuk membuat volume duplikat di Zona Ketersediaan baru. Jika Anda memilih untuk menggunakan snapshot untuk mengubah ukuran volume Anda, Anda perlu memastikan sistem file atau aplikasi Anda mendukung perubahan ukuran perangkat.

echox
sumber
22

Saya mengikuti semua jawaban, semua memiliki sesuatu yang hilang dengan segala hormat.

Jika Anda mengikuti langkah-langkah ini, Anda dapat menumbuhkan volume EBS Anda dan menyimpan data Anda (ini bukan untuk volume root). Untuk kesederhanaan saya menyarankan untuk menggunakan AWS consule untuk membuat snapshot, ... Anda dapat melakukannya dengan menggunakan alat baris perintah AWS juga.

Kami tidak menyentuh volume root di sini.

Goto konsol AWS Anda:

  1. Matikan instans Anda (hanya beberapa menit)
  2. Lepaskan volume yang Anda rencanakan untuk tumbuh (katakan / dev / xvdf)
  3. Buat snapshot volume.
  4. Buat volume baru dengan ukuran lebih besar menggunakan snapshot yang baru saja Anda buat
  5. Lampirkan volume baru ke instance Anda
  6. Mulai contoh Anda

SSH untuk contoh Anda:

 $ sudo fdisk -l

Ini memberi Anda sesuatu seperti:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 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: 0xd3a8abe4

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

Tuliskan nilai Mulai dan Id . (dalam hal ini 2048 dan 83)

Menggunakan fdisk, hapus partisi xvdf1 dan buat yang baru yang dimulai persis dari blok yang sama (2048). Kami akan memberikan ID yang sama (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

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

Calling ioctl() to re-read partition table.
Syncing disks.

Langkah ini dijelaskan dengan baik di sini: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Hampir selesai, kita hanya perlu memasang volume dan menjalankan resize2fs:

Pasang volume ebs: (milik saya di / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

dan ubah ukurannya:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

Selesai! Gunakan df -huntuk memverifikasi ukuran baru.

Pencari
sumber
19

Selama Anda baik-baik saja dengan downtime beberapa menit, Eric Hammond telah menulis artikel yang bagus tentang mengubah ukuran root disk pada instance EBS yang sedang berjalan: http://alestic.com/2010/02/ec2-resize-running-ebs -akar

Jeff Bauer
sumber
1
Terinspirasi oleh ini, saya mulai menulis "awscripts", @ github.com/moejay/awscripts itu termasuk perintah Eric dan juga untuk mengubah jenis instance, dalam skrip 'crontabbable' yang mudah
jay
5

Anda sekarang dapat melakukan ini melalui Konsol Manajemen AWS. Prosesnya sama dengan jawaban lainnya tetapi Anda tidak perlu lagi pergi ke baris perintah.

Boggin
sumber
7
Bisakah Anda memposting informasi lebih lanjut tentang bagaimana hal ini dilakukan melalui konsol web? Konsol mungkin dapat mengubah ukuran volume, tetapi bagaimana menangani perubahan ukuran partisi di dalam volume, terutama jika itu dari jenis seperti XFS, BRTFS, dll?
Riyad Kalla
Ini seharusnya merupakan komentar karena hanya menambah jawaban yang sudah ada dan tidak menambahkan sesuatu yang baru di dalam dan dari dirinya sendiri.
Yuck
1
Instruksi untuk menggunakan konsol web tersedia di sini: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov
4

BTW: Seperti halnya disk fisik, mungkin berguna untuk menggunakan LVM; ex:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Keuntungan besar: Memungkinkan menambah (atau menghapus) ruang secara dinamis.

Itu juga dapat dengan mudah dipindahkan di antara / di antara instance.

Peringatan:

  • itu harus dikonfigurasi sebelumnya
  • setup JBOD sederhana berarti Anda kehilangan segalanya jika Anda kehilangan satu "disk"
mvgfr
sumber
4

Langkah saya:

  1. hentikan instance
  2. temukan volume ebs yang melekat pada instance dan buat snapshot-nya
  3. buat volume baru dengan ruang disk lebih besar menggunakan snapshot di atas. Sayangnya UI pada konsol aws untuk membuat snapshot hampir tidak dapat digunakan karena ini mencantumkan semua snapshot pada aws. Menggunakan alat baris perintah jauh lebih mudah, seperti ini:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. lepaskan volume ebs (lebih kecil) yang ada dari instance

  5. lampirkan volume baru (lebih besar) ke instance, dan pastikan melampirkannya ke perangkat yang sama dengan instance yang diharapkan (dalam kasus saya adalah / dev / sda1)
  6. mulai contoh

Kamu selesai!

Selain langkah 3 di atas, Anda dapat melakukan semuanya menggunakan konsol manajemen aws.

Juga CATATAN seperti yang disebutkan di sini:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

perangkat pada instance EC2 Anda mungkin / dev / xv * sementara konsol web aws memberi tahu Anda itu / dev / s *.

Dexin Wang
sumber
2
Pada November 2013, Anda dapat memilih foto yang baru dibuat dan kemudian klik 'Buat Volume' di bagian atas halaman. Ini akan membuat volume dari snapshot, dan Anda dapat menghindari melakukan langkah 3 di atas dari baris perintah.
Matt C
1
Satu catatan adalah bahwa Anda harus memastikan Anda membuat volume di zona ketersediaan yang sama dengan instance, jika tidak, Anda tidak akan dapat melampirkannya.
codecowboy
3

Gunakan perintah "diskpart" untuk OS Windows, lihat di sini: Gunakan http://support.microsoft.com/kb/300415 Berikut ini adalah langkah-langkah yang saya ikuti untuk disk non-root (dasar bukan disk dinamis)

Setelah Anda mengambil snapshot, turunkan volume EBS lama (katakanlah 600GB) dan buat volume EBS yang lebih besar (katakanlah 1TB) dan pasang volume EBS baru ini - Anda harus memberi tahu Windows tentang pengubahan ukuran (dari 600GB ke 1TB) jadi di command prompt (jalankan sebagai administrator)

diskpart.exe

pilih disk = 9

pilih volume = Z

memperpanjang

[disk saya 9, volume berlabel Z, adalah volume ukuran 1TB yang dibuat dari ec2-snapshot ukuran 600GB - Saya ingin mengubah ukuran 600GB menjadi 1TB sehingga dapat mengikuti langkah-langkah di atas untuk melakukan ini.]

dinn11
sumber
Bekerja sangat baik untuk sistem Datacenter Win Server 2003 R2 saya. Terima kasih atas tipnya!
Jeff Hay
Pos yang bagus, banyak membantu saya!
user1326293
0

Saya sangat merekomendasikan Logical Volume Manager (LVM) untuk semua volume EBS, jika sistem operasi Anda mendukungnya. Distribusi Linux umumnya dilakukan. Ini bagus karena beberapa alasan.

  1. Mengubah ukuran dan memindahkan volume logis dapat dilakukan secara langsung, jadi alih-alih keseluruhan snapshot offline, yang membutuhkan waktu henti, Anda bisa menambahkan membuat volume EBS lain yang lebih besar, menambahkannya ke kelompok LVM sebagai volume fisik (PV), pindahkan untuk itu, hapus volume fisik lama dari kumpulan, dan hapus volume EBS lama. Kemudian, Anda cukup mengubah ukuran volume logis, dan mengubah ukuran sistem file di dalamnya. Ini tidak memerlukan downtime sama sekali!

  2. Ini mengabstraksi penyimpanan Anda dari perangkat 'fisik' Anda. Memindahkan partisi di seluruh perangkat tanpa perlu downtime atau perubahan ke mountpoints / fstab sangat berguna.

Akan lebih baik jika Amazon memungkinkan untuk mengubah ukuran volume EBS saat bepergian, tetapi dengan LVM itu tidak perlu.

Martijn Heemels
sumber
0

jika volume root Anda adalah sistem file xfs maka jalankan perintah ini xfs_growfs /

Saurabh Chandra Patel
sumber
Ini perlu sedikit lebih detail untuk dianggap sebagai jawaban yang lengkap dan dapat digunakan.
Yuck