Pertanyaan Seberapa buruk sebenarnya menginstal Linux pada satu partisi besar?


Kami akan menjalankan CentOS 7 di server baru kami. Kami memiliki 6 x 300GB drive di raid6 internal ke server. (Penyimpanan sebagian besar eksternal dalam bentuk kotak raid 40TB.) Volume internal mencapai sekitar 1,3TB jika diformat sebagai satu volume. Sysadmin kami berpikir itu adalah ide yang sangat buruk untuk menginstal OS pada satu partisi 1.3TB besar.

Saya seorang ahli biologi. Kami secara terus-menerus menginstal perangkat lunak baru untuk menjalankan dan menguji, yang sebagian besar berada di / usr / lokal. Namun, karena kami memiliki sekitar 12 ahli biologi non-komputer yang menggunakan sistem ini, kami juga mengumpulkan banyak crumpt di / home. Server terakhir kami memiliki partisi 200GB untuk /, dan setelah 2,5 tahun itu 90% penuh. Saya tidak ingin itu terjadi lagi, tetapi saya juga tidak ingin menentang saran ahli!

Bagaimana cara terbaik menggunakan 1.3TB yang tersedia untuk memastikan bahwa ruang tersedia kapan dan di mana diperlukan tetapi tidak membuat mimpi buruk pemeliharaan untuk sysadmin ??


91
2017-09-18 08:12




Gunakan LVM dan ubah ukuran sesuai keinginan - thanasisk
@thanasisk At akan resizability adalah mitos, karena tidak ada filesystem di linux yang dapat online menyusut. ext2 memiliki patch seperti itu pada zaman kuno. - peterh
@PeterHorvath - apakah Anda senang jika saya mengganti "mengubah ukuran" dengan "memperluas"? - thanasisk
Agak tidak realistis mengharapkan apa pun yang Anda atur sekarang untuk tetap optimal dalam 2,5 tahun! Dan fakta bahwa pengguna yang tidak paham membuat kekacauan adalah alasan lain untuk memisahkan OS dari data. - JamesRyan
@PeterHorvath Saya membaca komentar Anda lebih dari sekali supaya saya bisa memahaminya. Anda menulis Anda akan senang jika filesystem yang bisa berkembang ada dan saya menunjukkan filesystem yang tidak. Itu saja. - gparent


Jawaban:


Alasan utama (historis) untuk partisi adalah:

  • untuk pisahkan sistem operasi dari pengguna dan data aplikasi Anda. Hingga rilis RHEL 7 tidak ada yang didukung jalur peningkatan dan upgrade versi utama akan membutuhkan instalasi ulang dan kemudian memiliki misalnya /home dan data lain (aplikasi) pada partisi terpisah (atau volume LVM) memungkinkan Anda untuk menyimpan data pengguna dan data aplikasi dengan mudah dan menghapus partisi OS.

  • Pengguna tidak dapat masuk dengan benar dan sistem Anda mulai gagal dengan cara yang menarik ketika Anda benar-benar kehabisan ruang disk. Beberapa partisi memungkinkan Anda untuk menetapkan ruang hard reserved hard disk untuk OS dan menjaga agar tetap terpisah dari area tempat pengguna dan / atau aplikasi tertentu diizinkan untuk menulis (misalnya /home /tmp/ /var/tmp/ /var/spool/ /oradata/ dll.), memitigasi risiko operasional pengguna dan / atau aplikasi yang berperilaku buruk.

  • Kuota. Kuota disk memungkinkan administrator untuk mencegah pengguna individu menggunakan semua ruang yang tersedia, mengganggu layanan untuk semua pengguna lain dari sistem. Kuota disk individu diberikan per sistem file, sehingga satu partisi dan dengan demikian sistem file tunggal berarti hanya 1 kuotit disk. Multi-partisi (LVM) berarti banyak sistem file yang memungkinkan pengelolaan kuota yang lebih rinci. Bergantung pada skenario penggunaan Anda, Anda mungkin ingin, misalnya, mengizinkan setiap pengguna 10 GB dalam direktori home mereka, 2TB di direktori / data pada susunan penyimpanan eksternal dan mengatur area gores bersama yang besar tempat siapa pun dapat membuang dataset terlalu besar untuk direktori home mereka dan di mana kebijakan menjadi "kenyang penuh" tetapi ketika itu terjadi tidak ada yang rusak juga.

  • Menyediakan jalur IO yang berdedikasi. Anda mungkin memiliki kombinasi disk SSD dan yang berputar dan akan melakukannya dengan baik untuk mengalaminya secara berbeda. Tidak begitu banyak masalah dalam server tujuan umum, tetapi cukup umum dalam pengaturan database adalah juga menetapkan spindel tertentu (disk) untuk tujuan yang berbeda untuk mencegah pertentangan IO, mis. disk terpisah untuk log transaksi, disk terpisah untuk data database aktual dan disk terpisah untuk ruang temp. .

  • Boot Anda mungkin memiliki kebutuhan tersendiri /boot partisi. Secara historis untuk mengatasi masalah BIOS dengan booting melebihi batas 1024 silinder, saat ini lebih sering persyaratan untuk mendukung volume terenkripsi, untuk mendukung kontroler RAID tertentu, HBA yang tidak mendukung booting dari SAN atau sistem file yang tidak segera didukung oleh penginstal, dll.

  • Tuning Anda mungkin memiliki kebutuhan untuk opsi tuning yang berbeda atau bahkan sistem file yang sama sekali berbeda.

Jika Anda menggunakan partisi keras Anda lebih atau kurang harus melakukannya dengan benar pada waktu menginstal dan kemudian partisi besar tunggal bukan yang terburuk, tetapi itu memang datang dengan beberapa pembatasan di atas.

Biasanya saya sarankan untuk mempartisi volume utama Anda sebagai volume fisik LVM Linux tunggal tunggal lalu membuat volume logis yang sesuai dengan kebutuhan Anda saat ini dan untuk sisa ruang disk Anda, biarkan belum ditetapkan hingga dibutuhkan.

Anda dapat memperluas volume dan sistem file mereka sesuai kebutuhan (yang merupakan operasi sepele yang dapat dilakukan pada sistem langsung), atau membuat yang tambahan juga.

Volume LVM yang mengecil adalah hal yang sepele tetapi sering menyusutkan sistem file pada mereka tidak didukung dengan baik dan mungkin harus dihindari.


103
2017-09-18 09:49



Terkait dengan hal kinerja, saya pikir itu juga perlu menunjukkan bahwa, dalam hal filesystem pengajuan tanggapan cepat diperlukan, dan 'df' akan mengembalikan informasi yang berguna jauh lebih cepat daripada 'du -s $ DIRNAME' - symcbean
Saya tidak yakin saya setuju dengan "hingga ... RH7 ... tidak ada jalur peningkatan yang didukung". Saya telah melakukan upgrade yang didukung sejak waktu keluar dari pikiran, dan pasti upgrade sistem RH4-> 5. Ini hanya RH5-> RH6 yang tidak memiliki jalur seperti itu, sepengetahuan saya - dan saya merasa RH telah secara komprehensif dimuntahkan oleh pengguna mereka karena kekurangan tersebut. +1 untuk sisa jawaban yang sangat baik, meskipun. - MadHatter
Apa yang Anda maksud dengan "Hingga rilis RHEL 7 tidak ada jalur upgrade yang didukung"? Akankah RHEL mendukung peningkatan versi utama dari RHEL 7 dan maju? - Markus Hallmann
Upgrade bekerja, tetapi menurut topi merah kebijakan umum adalah: Red Hat tidak mendukung upgrade di tempat antara versi utama Red Hat Enterprise Linux.  dan sedikit nuansa ke bawah Red Hat saat ini mendukung pemutakhiran dari Red Hat Enterprise Linux 6 ke Red Hat Enterprise Linux 7 untuk kasus penggunaan khusus / yang ditargetkan saja dan ini panduannya untuk memeriksa - HBruijn


Konsep menggunakan beberapa partisi adalah bahwa yang penuh di tempat yang salah tidak akan menyebabkan seluruh sistem bekerja tak terduga.

Pertimbangkan sebuah proses pada mesin mengisi logfile cukup cepat sampai pada titik di mana tidak ada ruang kosong yang tersedia. Pada mesin satu-partisi, ini dapat, misalnya, mencegah sistem untuk menulis data baru ke / tmp. Jika ada proses lain yang ingin ditulis ke / tmp, itu mungkin akan keluar dengan kesalahan, menyebabkan perilaku tidak terduga.

Ini dapat dicegah jika Anda menggunakan partisi yang berbeda untuk tempat di mana pengguna atau proses biasanya menulis ke (/ home, / var, / tmp).

Saya akan merekomendasikan Anda memeriksa server lama Anda yang foldernya cenderung menjadi besar. Anda dapat melakukannya pada baris perintah dengan

du -h -d 1 / 2> /dev/null

Anda akan melihat di mana sebagian besar data terakumulasi dan merancang sistem Anda selanjutnya dengan tepat. "-D 1" membatasi keluaran hanya ke satu tingkat kedalaman folder sehingga lebih mudah dibaca.


17
2017-09-18 08:38





Masalah utama dengan memiliki satu partisi besar adalah bahwa mengisi filesystem ke atas adalah mungkin bahwa tidak ada proses masuk yang mungkin lagi.

Akar pengguna memiliki folder beranda (/root) di luar /home karena ini. Jika sistem berkas terisi di bawah beberapa keadaan, bahkan root tidak dapat masuk dan tidak dapat memperbaiki sistem.

Inilah alasan mengapa Anda biasanya membuat titik pemasangan terpisah untuk /var, /tmp dan /home untuk dapat login setidaknya sebagai root untuk memperbaiki sistem ketika salah satu partisi lain diisi.


12
2017-09-18 08:23



pada beberapa filesystem (ext3 f.e.) Anda dapat memiliki sedikit ruang cadangan untuk pengguna root untuk mencegah perilaku itu. Anda harus menggunakan kuota untuk mencegahnya, sama untuk / tmp yang sering dilupakan. - Dennis Nolte
@DennisNolte saya lupa tentang /tmp. Terima kasih, saya akan menambahkan ini ke jawaban saya. - Uwe Plonus
@DennisNolte ruang yang disediakan akan membantu tetapi saya pikir pemeliharaannya lebih sulit daripada menggunakan partisi yang berbeda karena Anda harus menyiapkan kuota dengan benar. - Uwe Plonus
Saya pikir alasan yang lebih penting untuk /root berada di luar /home adalah bahwa pada beberapa instalasi /home akan berada di drive jaringan. Jika ada masalah saat memasangnya di jaringan, file root tetap dapat diakses. (Ini mungkin dibandingkan dengan bagaimana biasanya ada editor teks di /bin, dalam hal /usr tidak akan meningkat.) Saya menduga ini adalah skenario yang lebih umum dalam prakteknya, hari ini, daripada /home mengisi semua jalan. - Eliah Kagan


IMHO, memiliki satu partisi sebagai / cukup masuk akal.

Tetapi Anda dapat menggunakan lvm (manajer volume logis). Gunakan semua disk sebagai grup lvm, tetapi buat disk logis kecil untuk /, / home, / usr dan apa pun yang disukai sysadmin Anda. Kemudian letakkan beberapa pemantauan, yang Anda tahu, ketika sistem Anda mulai semakin penuh dan perluas disk yang Anda butuhkan. lvresize dan resize2fs adalah alat online dan Anda dapat melakukan ekspansi tanpa memulai ulang server. Namun Anda tidak dapat mengurangi disk, jadi Anda harus mulai cukup kecil dan meningkatkan di mana Anda melihat kebutuhan.


10
2017-09-18 08:22





Ada masalah minimal di sekitar pengaturan besar-satu-partisi linux, tetapi memiliki imbalan besar.

Mengubah tata letak partisi agak sulit dan berisiko, yang sering kali tidak dapat Anda lakukan tanpa waktu henti yang lama.

Keuntungan satu-satunya adalah Anda memiliki perlindungan terhadap masalah penuh disk. Tetapi Anda akan menemukan masalah ini banyak sering. Bayangkan situasinya, jika salah satu partisi Anda penuh, dan Anda tidak dapat menggunakan ruang di partisi lain, meskipun hampir kosong!

Beberapa administrator sistem profesional memiliki pendapat berbeda tentang hal ini. Mereka mengatakan, bahwa memiliki beberapa partisi dapat membuat sistem Anda lebih dapat diandalkan dan Anda harus tahu sebelum mempartisi Anda, seberapa besar partisi Anda nantinya. Menurut pendapat saya, ini tidak bisa dikatakan, itu adalah kelemahan yang mengerikan pada fleksibilitas pada sistem, dan motivasi mereka yang sebenarnya adalah bahwa mereka hanya suka bermain dengan peta partisi.

Ada sistem sederhana bernama lvm, yang memungkinkan bergerak / mengubah ukuran "partisi" on-the-fly (dalam terminologi, volume). Tetapi pada server departemen lokal tunggal, IMHO biasanya tidak diperlukan.


9
2017-09-18 08:43



Seperti apa admin masokistik suka untuk bermain dengan peta partisi ??? Bagian yang menyenangkan adalah membangun kernel, bisakah saya mendapatkan Amin??? - bishop
Amin! Sekarang tentang argumen bahwa admin suka bermain dengan partisi, saya hanya ingin melawan bahwa dengan fakta bahwa linux mungkin memiliki 100 tipe file-sistem yang berbeda dan tergantung pada pola penggunaan, memilih sistem filre yang tepat untuk tugas tertentu dapat berarti perbedaan antara sistem yang optimal dan sistem non-fungsional. Dan mungkin Anda hanya membutuhkan sistem file itu dalam beberapa folder. Sana. - Lennart Rolland


Ada dua alasan utama untuk partisi:

  1. Untuk menjaga data statis menjauh dari data non-statis
  2. Untuk menjaga data publik jauh dari data pribadi

Alasan pertama adalah yang paling jelas - Anda perlu mengisolasi area yang akan diisi dengan file-file dari yang tidak, dan Anda terutama ingin melindungi /, untuk menghindari sistem yang tidak dapat ditunda. Sebagai contoh, direktori / var biasanya di mana file-file log akan disimpan (var singkatan dari "variabel") dan inilah sebabnya mengapa / var cenderung dipasang pada partisi terpisah dari /.

Alasan kedua di atas kurang dikutip (Saya terakhir mendengarnya di kursus Veritas Volume Manager sekitar 15 tahun yang lalu) dan itu benar-benar hanya relevan untuk sistem di mana banyak orang masuk dan melakukan pekerjaan.

Ada sesuatu dari seni untuk mempartisi efektif, dan ini mungkin mengapa ada Sys Admin yang menganggapnya terlalu jauh (IMO). Anda tidak hanya perlu mengetahui filesystem di dalam, tetapi Anda juga harus mengetahui tujuan penggunaannya. Saya pribadi berpikir itu adalah pendekatan yang agak kuno yang menjadi kurang dan kurang relevan dengan cara server digunakan saat ini.

Sebagai pengembang perangkat lunak, saya sangat muak dengan departemen Ops membangun Mesin Virtual dengan skema pemartisian yang tidak bijaksana yang sangat membatasi ukuran / tmp, / home, / var dan /, terlepas dari total ruang disk yang tersedia, tetapi kemudian tidak tidak me-mount pilihan yang jelas seperti / usr atau / opt secara terpisah. Mesin-mesin ini biasanya akan menyimpan apa pun yang tersisa dari ruang disk yang Anda minta ke dalam volume "/ barang" yang akhirnya akan Anda pasang dan menyatukan semuanya, tetapi itu bukanlah penghiburan. Hasil akhirnya adalah bahwa kita sering menghabiskan lebih banyak waktu untuk mengacak file dan mengirim email peringatan daripada melakukan pekerjaan nyata.

Tidak ada yang secara inheren "buruk" tentang memiliki satu partisi. Pada sistem apa pun, Anda harus memantau penggunaan disk Anda secara proaktif, dan menggunakan strategi tata-ruang yang masuk akal (misalnya rotasi log, kuota pada direktori rumah), sehingga satu-satunya pertanyaan sesungguhnya adalah: berapa banyak sistem file terpisah yang ingin Anda khawatirkan?

Karena itu saya akan mengatakan: kecuali Anda 100% yakin dengan kemampuan Anda untuk mempartisi sistem secara efektif untuk kasus penggunaan khusus Anda, jangan partisi sama sekali.


3
2017-09-18 09:41



Persis. Ok, mungkin pemisahan data publik-swasta harus dilakukan oleh izin di sistem file dan di layanan Anda. - peterh


IMHO terserah Anda sepenuhnya. Pertama, pertimbangkan beberapa hal, meskipun sepenuhnya agak relatif.

  • apakah sistem ini akan diadministrasikan secara rutin?
  • apakah sistem ini akan digunakan oleh satu atau lebih pengguna?
  • apakah sistem ini akan berfungsi sebagai desktop atau server, atau keduanya?

Karena seseorang dapat mempertimbangkan (hampir) setiap direktori, titik mount juga harus mempertimbangkan apa yang berisi data yang agak berkembang dan apa yang berisi data yang terus bertambah.

Anda akan terkejut betapa sedikit sistem linux (data yang agak berkembang) perlu dijalankan dan berapa banyak yang dikonsumsi oleh data yang berkembang (biasanya / var / opt / home / srv)

Itu juga tergantung pada bagaimana Anda mendefinisikan penggunaan untuk sistem ini yang menguraikan persyaratan partisi. Penggunaan untuk LVM disertakan.

Sebuah sistem desktop yang khas akan membutuhkan sekitar 20GB untuk menginstal banyak perangkat lunak, setelah semua sisanya ditugaskan ke rumah yang didedikasikan / akan melakukannya dengan baik. LVM menyebabkan overhead kecil pada sistem Anda dan dalam kasus khusus ini tidak begitu bermanfaat. Meskipun pendapat mungkin berbeda.

Pada server, kemungkinan perangkat lunak yang diinstal tidak se-dynamic seperti sistem desktop. Juga lebih bijak untuk memiliki titik tangkap yang sebenarnya untuk komponen sistem berkas yang umum seperti / tmp / var / usr / home / opt / srv Penggunaan LVM di sini disarankan untuk tidak dikatakan wajib.

Ini menawarkan untuk modularitas yang hebat dari sistem Anda, itu juga memungkinkan untuk melakukan hal-hal konyol seperti mengkloning partisi itu ke dalam VM misalnya. Atau membuat cadangan tingkat blok menggunakan dd.

Berdasarkan beberapa pengalaman, berikut beberapa catatan. Juga pertimbangkan untuk memiliki beberapa titik mount untuk memungkinkan kontrol yang lebih besar, menetapkan perangkat disk yang cepat atau lambat ke titik mount dapat membuat perbedaan dunia dan dapat meningkatkan efisiensi biaya.

Mounpoint /

  • 1GB (jika menggunakan mountpoint terpisah untuk / var / usr / opt / home / tmp)
  • +10 atau bahkan +20 GB jika menggunakan sebagai sistem desktop dengan rumah / terpisah

jika menggunakan mountpoint / home

  • menetapkan semua ruang kosong jika digunakan, / home ne

jika menggunakan mountpoint / opt

jika menggunakan mountpoint / usr

  • ini adalah salah satu yang rumit dan sangat bergantung pada basis perangkat lunak yang diinstal

jika menggunakan mountpoint / var

  • ini adalah salah satu yang rumit dan sangat bergantung pada basis perangkat lunak yang diinstal
  • misalnya, database menulis data mereka di sini di sistem berbasis Debian, jika tidak semua Linux
  • memiliki terpisah / var / tmp tidak masuk akal

jika menggunakan mountpoint / tmp

  • pertimbangkan tmpfs ada dan dialokasikan / tmp ke RAM
  • pertimbangkan beberapa aplikasi dapat menulis banyak data di sini

2
2017-09-18 14:18