powinienem umieścić mój system plików btrfs na wielu urządzeniach na partycjach dyskowych lub surowych urządzeniach?

16

Jeśli mam stworzyć system plików btrfs dla wielu urządzeń . Oficjalna rekomendacja z dokumentacji wydaje się być tworzona na surowych urządzeniach; to znaczy /dev/sdb, /dev/sdcitp, ale to nie jest wyjaśnione.

Czy są jakieś zalety tworząc tablicę partycji na tych urządzeniach pierwszy, albo GPT lub MBR, a następnie tworzenie systemu plików na /dev/sdb1, /dev/sdc1et cetera? Czy podawanie całych urządzeń btrfs ma jakąś szczególną zaletę, czy są one zasadniczo równoważne?

Glif
źródło

Odpowiedzi:

7

Partycjonowanie to tylko sposób na podzielenie dysku na wiele woluminów, z których można korzystać niezależnie. Jeśli chcesz tylko jednego woluminu na dysk, partycjonowanie niczego ci nie kupi - po prostu usuwa trochę miejsca na dysku (tak, jest bardzo małe) i komplikuje takie rzeczy, jak wyrównanie danych na dyskach twardych z sektorami 4K lub dyskami flash. Jedynym innym powodem posiadania tabeli partycji jest uruchomienie komputera z tego dysku. Jeśli nie ma powodu, aby mieć tablicę partycji, łatwiej jest ją pominąć.

mgorven
źródło
3

Istnieje szereg wad podziału na partycje. MBR marnuje cały „utwór”. Ścieżka to liczba sektorów razy rozmiar sektora, ale prawdziwy dysk ma sektory, a rozmiar sektora nie wynosi 512o. Prawdziwy dysk ma bloki, które są 8 razy większe dla obracających się dysków i znacznie większe dla urządzeń flash. To przejście do następnego utworu może uniemożliwić wyrównanie „logicznych” sektorów z rzeczywistymi blokami za pomocą kroku i paska.

W dawnych czasach można było zdefiniować rozmiar sektora w FAT, ale MBR położyło temu kres.

Jeśli uruchamiasz system z dysku, BIOS potrzebuje sygnatury rozruchowej na końcu pierwszych 512o, aby wiedział, że może to uruchomić po załadowaniu. Jeśli korzystasz z EFI, upij się. System plików musiałby mieć do tego dziurę, jeśli ma być użyty do uruchomienia systemu.

XFS (najczęściej używany na / var na obracających się dyskach) nie ma takiego otworu.

Andrew Buckeridge
źródło
1
Jestem trochę zmieszany; czy „(całkowita) liczba sektorów razy rozmiar sektora” nie byłaby całym dyskiem, jeśli dysk składa się z sektorów? Czy może sugeruje się coś innego niż „całkowity”?
Glyph
1

Użyj oddzielnych dysków, aby uzyskać korzyści z szybkości odczytu / zapisu dysku.

Zasadniczo /dev/sdajest jeden dysk twardy, i /dev/sda1, /dev/sda2są częściami tego samego dysku fizycznego.

jeśli użyjesz /dev/sda, + /dev/sdbdo konfiguracji, masz dwa oddzielne dyski, które mogą się wycofać w tym samym czasie.

jeśli używasz, /dev/sda1 /dev/sda2to dostajesz ten sam dysk, próbując odczytać oba, więc musi to zrobić jeden, a potem drugi.

Jharwood
źródło
1
Jeśli mówisz, że używanie sdajest szybsze niż sda1, skąd ta przewaga prędkości?
user1686
przewaga prędkości wynika z równoległego przechowywania i pobierania danych, zamiast tego samego sprzętu, który próbuje przejść do wielu lokalizacji na tym samym dysku
Jharwood
Nie było żadnej wzmianki o wielu lokalizacjach ani wielu partycjach. Pytanie dotyczy jednej partycji obejmującej cały dysk.
user1686
Ach, przepraszam, że źle zrozumiałem pytanie.
Jharwood
0

Jeśli dobrze rozumiem, używanie całych dysków pozwoli BTRFS na przyjęcie pewnych założeń, które pozwolą na pewną optymalizację zachowania.

Na przykład, jeśli otrzyma pełne urządzenie do pracy, może założyć, że nie będzie miał nic trudnego w dostępie do urządzenia, i może dostosować swoje metody dostępu, zamiast okresowego przewidywania opóźnień z czegoś innego w innym urządzeniu i musisz poczekać, aż dysk wróci do niego po przetworzeniu drugiego żądania.

killermist
źródło
To, co opisujesz, nazywa się rzeczywistością dysku IO w ogóle, a nie czymś specyficznym dla systemu plików. Co konkretnie widziałeś w btrfs, który optymalizuje lub planuje IO inaczej w zależności od tego, czy istnieje tabela partycji?
Brian Cline,
System plików tego nie robi. System operacyjny robi to, jeśli to zachowanie jest odpowiednie. Moje użycie „tego” było prawdopodobnie dwuznaczne i / lub nakładające się i / lub wykluczające się nawzajem.
killermist
0

W przypadku wszystkich tych dysków sektorów 4K można użyć partycjonowania do wyrównania systemu plików. Po prostu uruchom fdisk za pomocą:

fdisk -H 224 -S 56

i utwórz pojedynczą partycję obejmującą całe urządzenie.

Lester Cheung
źródło