Cara meningkatkan ukuran disk pada instance yang berjalan di Amazon EC2

13

Saya mendapat contoh menjalankan pengaturan server EC 2 dengan Ubunto. Apa cara terbaik untuk meningkatkan ukuran disk tanpa downtime dan risiko minimal?

Membaca panduan ini, salah satu caranya adalah dengan membuat disk baru, memigrasikan data, mematikan instance swap disk, dan menyalakannya kembali. Pendekatan ini kedengarannya agak berisiko akan membutuhkan waktu henti. Saya ingin tahu apakah ada pendekatan yang lebih baik?

googletorp
sumber

Jawaban:

14

Amazon AWS baru saja merilis (pada 13 Februari 2017) fitur baru yang memungkinkan untuk mengubah ukuran volume EBS.

sumber: https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

Ini memungkinkan untuk meningkatkan ukuran volume EBS pada instance yang ada, saat sedang berjalan.

Penting untuk dicatat bahwa mengubah ukuran volume, tidak mengubah ukuran filesystem pada volume (untuk sebagian besar filesystem). Langkah-langkah tambahan mungkin diperlukan (tergantung pada sistem file) di sistem operasi itu sendiri. Misalnya sistem file resizefspada yang ext4digunakan oleh sebagian besar OS Linux hari ini.

Dokumentasi lengkap dari AWS yang menggambarkan proses dapat ditemukan di http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

Dalam beberapa kasus, perangkat blok telah memetakan partisi, dan hanya satu (atau lebih) partisi yang menyertakan sistem file. Dalam hal ini, partisi perlu diubah ukurannya terlebih dahulu, dan baru setelah itu sistem file. Proses ini dijelaskan dalam dokumentasi juga.

Fitur pengubahan ukuran "online" baru yang dijelaskan dalam blog hanya berlaku untuk instance generasi saat ini, dan ada beberapa pertimbangan dan batasan lain yang perlu diperiksa sebelum mencoba pengubahan ukuran volume.

Evgeny
sumber
Sebelum mengubah ukuran sistem file Anda harus mengubah ukuran partisi yang mendasarinya juga, yang benar-benar memblokir partisi fisik untuk mengubah ukuran panas.
Tensibai
@Tensibai maaf saya tidak mengerti apa artinya "memblokir partisi fisik untuk mengubah ukuran panas". Apakah maksud Anda bahwa mengubah ukuran volume menggunakan AWS API akan memblokir write / reads to the volume?
Evgeny
Tidak, maksud saya disk akan lebih besar, tetapi partisi di atasnya akan tetap sama, Anda harus menggunakan fdiskuntuk mengubah ukurannya, mengenai partisi root, Anda biasanya tidak dapat menulis tabel partisi disk saat sedang dipasang, dan Anda tidak dapat melepasnya. Anda harus reboot pada satu titik :)
Tensibai
Benar, jika Anda menggunakan banyak partisi sebelum menambahkan lapisan sistem file - maka partisi harus diubah ukurannya terlebih dahulu. Terima kasih, saya akan mencoba dan menambahkannya ke dalam jawaban dengan mengutip beberapa panduan tentang bagaimana ini dilakukan.
Evgeny
Pertanyaan itu disebutkan tanpa downtime. Namun untuk mengubah ukuran volume root, sepertinya Anda harus mengambil instance untuk melakukan langkah ini?
Chris Stryczynski
2

Apa yang saya lakukan (dan itu tidak menjawab pertanyaan Anda) adalah sebagai berikut:

  1. Buat volume EBS dan lampirkan ke dokumen contoh di sini
  2. Telusuri ulang bus scsi echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(Anda mungkin harus menyesuaikan nomor host)
  3. Buat volume fisik dengan pvcreatepada disk baru ditemukan ( fdisk -luntuk mencantumkan semua disk)
  4. Buat grup volume dan kemudian volume logis di atasnya ( vgcreatedan lvcreate)
  5. Format volume logis dengan sistem file yang Anda inginkan
  6. tar mountpoint target untuk mengembalikannya.
  7. Pasang volume ini di tempat Anda membutuhkan ruang baru.
  8. Kembalikan tar ke ruang yang baru dipasang ini.

Langkah 6 dan 8 adalah opsional jika Anda menggunakan ruang baru sebelum menginstal sesuatu. Jika Anda ingin mengganti direktori yang sudah ada, Anda harus menghindari sesuatu yang tertulis di sana antara akhir arsip dan pemulihan.

Anda dapat mengulangi langkah 4 hingga 8 untuk titik mount yang berbeda, ini memungkinkan untuk memperluas ruang yang diperlukan dan kemudian mengubah ukuran volume tersebut secara online tanpa gangguan.

Tensibai
sumber
0

Penskalaan penyimpanan sistem file ZFS Zero Downtime pada AWS (atau di tempat lain)

berukuran besar

  1. Instal ZFS pada EC2.

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. Buat zpool untuk data massal Anda menggunakan volume EBS.
  3. Tambahkan EBS lain untuk mendapatkan lebih banyak penyimpanan blok. (atau atur kumpulan expo otomatis = true dan tumbuhkan EBS Anda)
  4. Tambahkan EBS baru ke zpool Anda untuk membuat ruang tersedia. (kecuali jika Anda menggunakan ekspansi otomatis dan meningkatkan ukuran EBS)

Ukuran bawah

  1. Buat zpool baru pada EBS baru yang cukup besar untuk menampung data yang menyusut. (tidak perlu dipasang lagi, atau bahkan pada EC2 yang sama)
  2. snapshot zpool terlalu besar besar
  3. zfs-kirim snapshot ke zpool baru
  4. mempromosikan snapshot yang diterima di pool baru dan memasangnya
  5. hancurkan kolam lama
  6. hancurkan EBS kolam lama
Jeremy
sumber
0

Setelah mengubah ukuran volume EBS, inilah yang baru saja saya lakukan ketika saya perlu memperluas kumpulan ZFS:

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
Michael Pereira
sumber