Tidak cukup ruang disk '/' dalam contoh AWS

28

Saya menjalankan Ubuntu 11,04 misalnya untuk Server Web saya pada AWS cloud, sekarang saya mendapatkan tidak ada ruang disk di / partisi server saya. df -ah katakan ini

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Sekarang saya telah mencoba hal ini untuk mendapatkan ruang / partisi tambahan

  • Bersihkan semua file Log untuk Apache.
  • Menghapus semua file yang tidak perlu dari server.
  • Pembersihan direktori rumah.

Tapi tetap saja saya tidak mendapatkan ruang yang cukup. Jenis Instance ini adalah m1.large dengan EBS 8GB. Sekarang saya mendapatkan ruang disk yang cukup di / dev / xvdb .

Apakah ada cara saya dapat mengalokasikan beberapa ruang disk ke / dari / dev / xvdb atau Cara lainnya. Tolong sarankan saya solusi yang mungkin untuk ini. Apakah mungkin untuk menggunakan partisi / dev / xvdb yang sama dengan instance lain.

Sumant
sumber
1
Pembaruan 2017: Amazon memungkinkan untuk mengubah ukuran drive Anda (bahkan boot drive) dengan cepat saat ini! lihat jawaban SO saya di sini: stackoverflow.com/a/42791031/7022062
Dmitry Shevkoplyas

Jawaban:

26

Jawabannya ada dua.

Penanganan masalah: gunakan / dev / xvdb (/ mnt) untuk data sementara

Ini adalah penyimpanan sementara yang disebut instance Amazon EC2 Anda dan karakteristiknya sangat berbeda dari penyimpanan Amazon EBS persisten yang digunakan di tempat lain. Secara khusus, penyimpanan sementara ini akan hilang pada siklus stop / start dan umumnya dapat hilang , jadi Anda pasti tidak ingin meletakkan apa pun yang bernilai lama di sana, yaitu hanya menyimpan data sementara di sana Anda dapat kehilangan atau membangun kembali dengan mudah , seperti file swap atau data yang sangat sementara yang digunakan selama perhitungan. Tentu saja Anda dapat menyimpan indeks besar di sana misalnya, tetapi harus siap untuk membangun kembali ini setelah penyimpanan telah dihapus karena alasan apa pun (misalnya reboot, kegagalan perangkat keras, ...).

Solusi: ubah ukuran / dev / xvda1 (/) untuk mendapatkan penyimpanan yang diinginkan

Ini adalah apa yang disebut Root Device Storage dari instance EC2 Anda yang didukung oleh Amazon EBS , yang memfasilitasi Amazon EBS untuk fleksibilitas dan daya tahan khususnya, yaitu data yang diletakkan di sana cukup aman dan selamat dari kegagalan instance; Anda dapat meningkatkan fleksibilitas dan daya tahan lebih jauh dengan mengambil snapshot reguler dari volume EBS Anda, yang disimpan di Amazon S3 , menampilkan daya tahan 99,999999999% yang terkenal.

Fitur snapshot ini memungkinkan Anda untuk menyelesaikan masalah Anda pada gilirannya, sejauh Anda dapat mengganti penyimpanan root EBS 8GB Anda saat ini (/ dev / xvda1) dengan satu lebih atau kurang sebesar yang Anda inginkan. Prosesnya diuraikan dalam artikel yang sangat bagus dari Eric Hammond Mengubah Ukuran Disk Root pada Instance EBS Boot EC2 yang Berjalan :

Selama Anda baik-baik saja dengan sedikit down time pada instance EC2 (beberapa menit), dimungkinkan untuk mengubah volume EBS root dengan salinan yang lebih besar, tanpa perlu memulai instance baru.

Jika Anda benar mempersiapkan langkah-langkah yang dijelaskannya (saya sangat merekomendasikan untuk mengujinya dengan contoh EC2 yang dibuang terlebih dahulu untuk membiasakan diri dengan prosedur, atau mengotomatiskannya melalui skrip khusus), Anda harus dapat menyelesaikan proses dengan beberapa menit memang hanya downtime.

Sebagian besar langkah-langkah yang diuraikan dapat dilakukan melalui AWS Management Console juga, yang menghindari berurusan dengan Amazon EC2 API Tools ; ini bermuara pada:

  • hentikan (jangan hentikan!) instance EC2
  • lepaskan volume EBS dari instance yang dihentikan
  • buat snapshot volume EBS terpisah
  • buat volume EBS baru (lebih besar) dari snapshot yang dibuat
  • lampirkan volume EBS baru ke instance EC2 ( Penting ! Jika ini adalah perangkat root Anda, pastikan untuk menamainya persis sebagai perangkat root dari instance seperti yang disebutkan misalnya (/ dev / sda1) atau (/ dev / xdva1) jika tidak maka akan dilampirkan sebagai perangkat blok dan bukan perangkat root dan Anda tidak akan dapat memulai instance karena tidak akan ada perangkat root terdaftar untuk instance.)
  • SSH ke instance yang sedang berjalan dan konfirmasi semuanya sudah beres df -ah
    • jika sistem Anda belum secara otomatis mengubah ukuran sistem file, Anda harus melakukan ini secara manual seperti yang dijelaskan dalam artikel Eric

Semoga berhasil!


Alternatif

Mengingat keserbagunaan dan kemudahan penggunaan volume-volume EBS ini, opsi tambahan adalah melampirkan lebih banyak volume EBS pada instance Anda dan memindahkan area-area perhatian yang jelas terpisah di sana.

Sebagai contoh, kami menggunakan beberapa aplikasi Java kelas berat, masing-masing mengkonsumsi penyimpanan 1-2GB per versi; untuk mempermudah peningkatan versi dan umumnya dapat memindahkan aplikasi ini ke instance yang berbeda atas kebijakan saya, saya telah menempatkannya pada masing-masing volume EBS khusus, pasang ini ke instance dan soft link mereka ke lokasi yang diinginkan, misalnya biasanya /var/lib/<app>/<version>dan /usr/local/<app>/<version>.

Dengan metode ini, kami saat ini menjalankan instance EC2 dengan penyimpanan perangkat root masih pada ukuran default 8GB (seperti milik Anda), tetapi kadang-kadang hingga 8 volume EBS dengan berbagai ukuran (1-15GB) terpasang.

Anda perlu mengetahui potensi masalah kinerja jaringan, sejauh semua volume EBS ini menggunakan LAN yang sama untuk I / O mereka, yang mungkin menghasilkan keuntungan kinerja masing-masing, atau menjenuhkan jaringan Anda dalam kasus-kasus ekstrem - jadi seperti biasa ini tergantung pada use case dan beban kerja yang dihadapi.

Steffen Opel
sumber
Saya menggunakan / dev / xvdb untuk menjaga database saya yang berukuran hampir 16GB sekarang, Satu proses latar belakang berjalan untuk tetap up to date. Jadi apa yang seharusnya menjadi penyimpanan permanen terbaik untuk database ini. Haruskah saya menggunakan Amazon RDS atau Amazon DynamoDB. apa saranmu Saya menjalankan server PHP dalam hal ini.
Sumant
2
@Sumant: Itu tidak baik, jadi Anda melakukan apa yang benar-benar berbahaya, yaitu menempatkan data untuk disimpan pada disk yang pada dasarnya dapat hilang kapan saja (biasanya tidak, meletakkannya harus memperlakukannya seperti itu)? Saya harap saya tidak memiliki lebah menyesatkan dalam hal ini - silakan ekstra hati-hati ketika mitigasi ini untuk menghindari kehilangan data selama proses (Anda lakukan memiliki backup database yang terlepas, kan?)!
Steffen Opel
@Sumant: Mengenai pertanyaan Anda - Anda tidak perlu mengubah arsitektur aplikasi (atau DB dalam hal ini) sama sekali untuk memperbaiki masalah penyimpanan, cukup mengubah ukuran Anda root disk atau melampirkan lebih banyak volume EBS seperti yang disarankan. Namun, jika Anda ingin meningkatkan dan memisahkan Anda tingkat DB juga, yang pada prinsipnya adalah hal yang baik dengan pertumbuhan masa depan dalam pikiran (tetapi datang dengan biaya masing-masing dari awal), dan dengan asumsi Anda sedang menjalankan MySQL, maka Amazon RDS akan menjadi pilihan yang sempurna dan nyaman. Amazon DynamoDB membutuhkan arsitektur aplikasi baru yang lengkap dan hanya berlaku untuk kasus penggunaan tertentu.
Steffen Opel
1
@Sumant: Harap diperhatikan, bahwa memigrasi DB Anda ke instance m1.small RDS sebenarnya mungkin menunjukkan kinerja yang lebih lambat daripada MySQL Anda saat ini di EC2, yang menjalankan m1.large dengan CPU masing-masing dan manfaat kinerja I / O - apakah ini berlaku, tergantung pada beban kerja DB Anda saat ini. Tentu saja, Anda dapat menggunakan instance RDS yang lebih besar juga untuk memperbaiki ini, tetapi biaya Anda akan meningkat karenanya.
Steffen Opel
1

Yap cara sederhana untuk fstab dan kemudian pasang untuk mengatakan / var / www / html / files2 /

kemudian mkdir / var / www / html / files2 / situs web lalu ln -s -d / var / www / html / situs web / var / www / html / files2 / situs web

Daniel Chay
sumber
gunakan UUID untuk me-mount partisi menggunakan perintah blkids dan fdisk mengatakan '/ dev / vxds /' untuk membuat partisi. Gunakan komandan tengah malam untuk memindahkan file dengan F6 dari satu folder ke folder lainnya, pastikan Anda memilih folder yang benar di bawah posisi mount oh dan tentu saja Anda perlu 'mount -a' setelah menambahkan ke fstab
Daniel Chay
0

Hari ini saya mengalami masalah yang sama, ketika Anda menghentikan niat EC2 baru secara default EBS adalah 8GB. Anda dapat memodifikasi ukuran EBS terlampir tanpa membuat intace baru atau mengambil snapshot atau melepaskan EBS .. Berikut adalah tiga langkah yang dapat Anda ikuti:

  1. Ubah ukuran Volume EBS
  2. Ubah ukuran partisi
  3. Ubah ukuran partisi Untuk langkah pertama pergi ke konsol AWS Anda dan klik EBS dan ubah ukuran yang diinginkan dan klik modifikasi.

Untuk langkah-langkah selanjutnya, silakan ikuti artikel ini jika Anda memiliki pertanyaan jangan ragu untuk bertanya.

Terima kasih!

Narendra Sharma
sumber