Optymalna partycja systemu plików UNIX + strategia instalacji

16

Kiedy preferujesz partycjonowanie nowych dysków systemowych dla systemu UNIX, jaka jest twoja preferowana strategia dla komputerów stacjonarnych i / lub serwerów?

Podaj układ partycji dysku, format (y) systemu plików i opcje, punkty montowania, poziomy RAID, grupy i woluminy LVM, szyfrowanie oraz wszelkie inne odpowiednie ustawienia.

cmcginty
źródło
Pytanie wydaje się niemal duplikatem tego ( serverfault.com/questions/1145/… ).
Zoredache
czy jest to stacja robocza, serwer testowy czy w pełni dojrzały serwer online?
djangofan

Odpowiedzi:

9

Jestem fanem LVM dla tego rodzaju problemów. Potrzebujesz tylko miejsca na / boot (używam około 100 MB). W połączeniu z systemami plików, które mogą dynamicznie rosnąć i kurczyć się (a przynajmniej rosnąć), nigdy więcej nie będziesz musiał myśleć o małych partycjach.

Na pulpicie używam LVM z XFS jako systemem plików dla wszystkich partycji. Tworzę tak małe, jak to możliwe i pozwalam im rosnąć, ponieważ potrzebuję więcej miejsca.

Jaskółka oknówka
źródło
7

Jeśli jest to Linux, należy mieć osobny / boot.

W przypadku innych wariantów Uniksa zazwyczaj zalecałem partycje dla / i / var, dane są zwykle montowane w / u001, / u002 itp.

Wcześniej istniała potrzeba silnego partycjonowania, ponieważ miejsce na dysku było ograniczone i nie chciałeś, aby jedna wypełniona partycja sprowadzała cały system. Dzięki dostępnemu dziś znacznie zwiększonemu rozmiarowi pamięci, a także licznym dostępnym opcjom zmiany rozmiaru i wirtualizacji, zapotrzebowanie na wiele partycji IMO spadło. To w połączeniu z faktem, że trudno jest przenosić rzeczy, gdy masz wiele partycji, oznacza to, że jeśli możesz uzyskać mniej, zrób to.

Wymienianie jako 2xRAM nie ma sensu, gdy mówimy o 32 GB pamięci. Pamiętajcie więc, że „reguły” są naprawdę wytycznymi, a niektóre po prostu nie mają sensu w świetle nowszego dostępnego sprzętu.

Jauder Ho
źródło
2
+1 za wspomnienie o konieczności partycjonowania w ostatnim czasie, poza tym, jeśli potrzebujesz więcej miejsca w / home, zawsze możesz zamontować nowy dysk twardy.
Spoike
1
+1 - Zgadzam się z lekceważeniem potrzeby szalonych gier partycjonujących na większości systemów. Jeśli wiesz, że potrzebujesz / var, aby znajdować się na szybkim dysku z powodu jakiejś aplikacji, niech tak będzie. Najczęściej, gdy natknąłem się na szalone partycjonowanie gier w systemach produkcyjnych, był to pojedynczy sprzętowy wolumin RAID-1 podzielony na kilka małych partycji, wszystkie czekają na wypełnienie i muszą zostać zmienione (aby pracować dla admin, najwyraźniej). Jeśli wiesz, że masz aplikację na skomplikowany schemat partycji, skorzystaj z niej. Jeśli nie, to nie.
Evan Anderson
5

Planowanie dobrej struktury partycjonowania jest silnie uzależnione od faktycznej znajomości sposobu korzystania z systemu. Wszelkie losowe porady, które nie biorą pod uwagę tego, co robi system, nie będą szczególnie przydatne.

Wszystkie fantazyjne systemy plików mogą być czasem przydatne, ale jeśli chcesz mieć stabilny system, lepszym pomysłem może być po prostu trzymanie się „standardowego” systemu plików (tj. Ext3), chyba że masz bardzo dobry powód, aby użyć czegoś innego.

RAID jest dobry, zawsze uruchamiam RAID1 na wszystkich moich komputerach osobistych, ponieważ miałem zbyt wiele awarii dysków twardych.

Szyfrowanie za pomocą czegoś takiego jak dm-crypt jest dobre, jeśli twój system jest urządzeniem przenośnym, ma dane o wysokiej wartości lub jesteś po prostu paranoikiem.

Podczas planowania partycji bardzo dobrze jest dobrze rozumieć takie rzeczy, jak Hierarchia Standardów Systemu Plików i czy / jak wybrany uniks odbiega od standardu.

Korzystanie z LVM może znacznie zmienić zdanie w przyszłości i dostosować partycje bez konieczności ponownego uruchamiania, a jego zdolność do tworzenia migawek może być bardzo łatwa do tworzenia dobrych kopii zapasowych. Użyj LVM i nie przydzielaj od razu całej swojej przestrzeni.

Zoredache
źródło
5

Są dwa bardzo dobre powody do partycjonowania poza typem FS:

  1. Zapobiegaj przepełnieniu z aplikacji wpływającej na funkcjonalność systemu. Jeśli aplikacja się zapełni /usr, warto pozostawić trochę miejsca, /varaby system mógł kontynuować pracę i rejestrować dzienniki.

    Jauder powiedział powyżej, że jest to negowane przez rozmiar dzisiejszych dysków twardych - nie sądzę, że jest to absolutnie prawda. Nasze dyski mogą być większe, ale przekazywane przez nas dane stale rosną. Nie ma potrzeby samozadowolenia.

  2. Opcje montażu. Możesz dokładniej określić, jakie uprawnienia powinna przyjąć każda partycja. Na przykład dobrą praktyką jest nie zezwalanie na uruchamianie plików, szczególnie suid, /tmpponieważ jest to częsty wektor ataku dla komputerów obsługujących aplikacje internetowe. O ile nie prowadzisz więzień, nie powinieneś oczekiwać, że zobaczysz węzły urządzeń w innym miejscu niż /dev. I tak dalej.

na przykład.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  
Dan Carley
źródło
4

Partycjonowanie dysków fizycznych
Rozpocznij od co najmniej 2 dysków:

# 1 100 MB, ID = 83 (Linux), flaga rozruchowa WŁ
# 2 Pozostałe, ID = FD (Linux Raid Auto)

Partycja 100 MB przeznaczona jest na wolumin / boot. Zostawiam to na wszystkich moich dyskach (nawet bez rozruchu), aby zapewnić elastyczność, dzięki czemu można później włączyć dowolny dysk. JEŻELI dyski nie są dopasowane pod względem rozmiaru lub masz nieparzystą liczbę (500 GB, 250 GB x 2), podziel partycje dysku 500 GB, aby dopasować je do mniejszych dysków.

RAID
Używając 100 MB partycji sdai sdbutwórz wolumin RAID1 (dublowanie) dla /boot. To się staje md0.

md0 / boot 100 MB Ext2

Nie przejmuj się użyciem egzotycznego FS na / bootie, nie warto.

Pozostałą przestrzeń można ustawić różnymi metodami. Zdecydowałem się na RAID10 (lustro / pasek) przy użyciu fragmentów 64K i „2 dalekich kopii” dla szybkości. Daje to dużą elastyczność przy stopniowym uaktualnianiu napędów wzdłuż linii. Inne opcje to zrobić RAID5 / 6. Jednak użyteczne miejsce będzie ograniczone do najmniejszej partycji i NIE używaj partycji z tych samych urządzeń. Imię nowe macierze RAID md1, md2i tak dalej.

LVM
Weź wszystkie macierze RAID oprócz md0i umieść je w jednej grupie woluminów LVM o nazwie lvm_vg0. Jeśli masz woluminy RAID5 i RAID10, prawdopodobnie najlepiej nie łączyć ich, ale myślę, że nie zaszkodzi.

Podziel VG0 na pozostałe partycje systemu. Pamiętaj, że stosunkowo łatwo jest dodać więcej miejsca w razie potrzeby, więc liczby te mogą być nieco konserwatywne.

lvm_vg0-root / 8GB Ext3 / ReiserFS (podstawowe pliki dystrybucyjne)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (dane użytkownika, dokumenty)
lvm_vg0-data / data 60 + GB XFS (media, duże pliki, VM)

Systemy plików XFS nie mogą zostać zmniejszone, więc miej to na uwadze. Ponadto zmniejszanie woluminu głównego online prawdopodobnie nie jest obsługiwane.

Aktualizacja Jeśli kiedykolwiek chcesz zamienić dyski na większe rozmiary, masz kilka opcji. Najłatwiej jest dodawać dyski parami lub więcej i dodawać nowe macierze RAID do bieżącej LVM VG.

Inną opcją jest dodanie pojedynczego dysku, który jest> = do sumy bieżącego miejsca. Na przykład, jeśli masz dwa urządzenia 100 GB w RAID10, możesz dodać nowe urządzenie 200 GB i wykonać kopię lustrzaną za pomocą dwóch starych urządzeń. Jest to bardziej podatne na błędy, ale zadziała.

W razie potrzeby md#urządzenia można usunąć z LVM VG bez utraty danych. Można to zrobić, jeśli jest wystarczająco dużo wolnego miejsca LVM, aby przenieść wszystkie używane bloki LVM z md#urządzenia na inne. LVM może używać tylko miejsca, które nie zostało przypisane do LV, więc pusty system plików nie jest liczony jako „wolne” miejsce.

cmcginty
źródło
1
Nie przekonuje mnie strach przed egzotycznymi systemami plików na / boot. ext3 i XFS nie są już egzotyczne w 2009 roku. Kiedyś LiveCD nie były wyposażone w sterowniki do nich, ale prawie wszystkie są obecnie.
Dan Carley,
@Casey, możesz zmniejszyć wolumin Ext3 „na żywo”, pod warunkiem, że masz wystarczająco dużo wolnego miejsca na rzeczy, do których można się przenieść. Tak, to jest gryzące paznokcie, ale zrobiłem to i działa zgodnie z reklamą. Po prostu BARDZO ostrożny z parametrami.
Avery Payne,
2

Właśnie uruchamiam stacje robocze Linux. Korzystam z systemu plików ext3, a rozmiary nieco zależą od wielkości dysków, co jest bardziej hojne w stosunku do partycji na większych dyskach. Są one w przybliżeniu w kolejności, w jakiej występują w tabeli partycji:

  • / boot - 100 MB
  • przestrzeń wymiany - 2xRAM
  • / usr - 10-20 GB
  • / - 5-10 GB
  • / var - 1-2 GB
  • / tmp - 1-2 GB
  • / usr / local - 10-20 GB
  • / home - wszystko inne.

Na stacjach roboczych mojej żony na uniwersytecie, które mają dwa dyski o pojemności 750 GB, oprócz powyższych utworzyliśmy kilkanaście ~ 100 GB partycji na różnych dyskach, wszystkie zamontowane w / data / N, gdzie N było liczbą od 1 do 12 Używa ich do przechowywania danych dla różnych projektów badawczych.

dagorym
źródło
Osobiście nie widzę korzyści z oddzielenia / var, / usr do innej partycji. Chociaż / usr / local może być dobrym pomysłem, jeśli masz niestandardowo zainstalowane oprogramowanie (= niezainstalowane za pomocą zarządzania pakietami), dwa wymienione są imho całkiem bezużyteczne. Również 2xRAM jako swap jest niepotrzebny. Jeśli twój system zaczyna się zamieniać, wszystko staje się powolne, więc powinieneś tego uniknąć na początku. Osobiście mam tylko partycję wymiany z Ramsize + X, ponieważ czasami używam funkcji zawieszenia na dysk.
Martin
2
@Martin, W systemie Linux działającym jako pamięć podręczna kalmarów chcesz, aby katalog buforowania był zapisywany na szybkim dysku i zwykle nie potrzebujesz, aby dysk był niezawodny. Można umieścić (/ var) szpulę na RAID0 (pasek) i pozostawić wszystko inne na wolniejszym dysku.
Zoredache
@Martin - Masz rację, rozdzielenie / usr jest prawdopodobnie niepotrzebne i ja też nie zawsze to robię. Zamiana = 2xRAM to stary nawyk, który pozostał z czasów, gdy konfigurowałem systemy z jedynie 256 MB pamięci RAM lub mniej.
dagorym
1
w rzeczywistości dzielenie / usr i / var pozwala włączyć kronikowanie w jednym, a nie w drugim.
Scott
1
A umieszczenie / var na osobnej partycji zapewnia, że ​​tylko / var może zapełnić się plikami dziennika, co w innym przypadku mogłoby doprowadzić Twój system do upadku.
wzzrd
1

używaj noatime na wszystkich dyskach (chyba, że ​​masz powód, aby tego nie robić) Instaluję / tmp w tmpfs, chociaż może to nie być tak dobre na serwerze, upewnię się, że jest to osobna partycja i zamontuję nodev, nosuid, noexec, noatime . Zawsze używam ext2 do / boot, więc nie muszę się martwić o zmianę rzeczy z fs, które psują moją zdolność do uruchamiania z / grub. ext4 we wszystkim innym, używam journal = data na / home, co prawdopodobnie trochę spowalnia (ponieważ nie ma dealloc), ale nigdy nie straciłem danych z Journal = data i będąc trochę najnowszym / największym kurwa, czasami mój system się blokuje i muszę go mocno zresetować (ponieważ próbowałem czegoś takiego jak kilometry i znalazłem błąd).

ksenoterracid
źródło
1
Nie zapomnij również użyć „nodiratime”, w przeciwnym razie będziesz naciskać na vfs_cache_pressure z mnóstwem i-węzłów (plus faktyczne zapisy na dysk!).
Gazzonyx
0

Wow, fajne pytanie. Surfowałem po idealną odpowiedź na to dla yonks.

Ja osobiście mam 50 Mb / boot ~ 8 GB /, a reszta idzie w stronę / home. To jednak nie wszystko. Muszę zbadać alternatywne systemy plików, obecnie używam ext3, ale słyszałem świetne rzeczy o innych systemach plików, na przykład XFS.

Zwykle tworzę również kontener plików dla / tmp wyłącznie po to, aby w przyszłości móc być bardziej elastyczny.

Adam Gibbins
źródło