Instalacja Linuksa na SSD netbook z kompresją plików

  1. Główne cechy systemu plików Btrfs
  2. Instalacja Linuksa na Btrfs z włączoną kompresją
  3. Dodawanie drugiego dysku do systemu plików Btrfs
  4. Dodatkowa optymalizacja systemu operacyjnego Linux do pracy na dyskach SSD
  5. Opcje montowania systemu plików Btrfs dla tradycyjnych mechanicznych dysków twardych
  6. Wniosek

W przeciwieństwie do Microsoft Windows, w którym przez wiele lat NTFS (FAT i ReFS ogłaszane w 2012 r. Nie będą dominującym i jedynym typem systemu plików), istnieje wybór w Linuksie. Tutaj możesz liczyć więcej niż kilkanaście typów systemów plików. Najsłynniejsze i najczęściej używane to EXT2, EXT3 i oczywiście EXT4. Możesz dodać do nich btrfs, jfs, reiserfs i wiele innych.

Idealne systemy plików nie istnieją. Każdy ma swoje mocne i słabe strony. Dzisiaj eksperymentujemy z Btrfs , który uważany jest za jeden z najszybszych i najbardziej obiecujących.

Główne cechy systemu plików Btrfs

System plików Btrfs (Better FS) , oparty na strukturach drzew binarnych ( B-drzewo ), został wprowadzony przez Oracle w 2007 roku.

Lista zalet i możliwości btrfs jest obszerna. Wymienię te, które wydawały mi się najbardziej interesujące do użytku na komputerze domowym i ostatecznie doprowadziły do ​​eksperymentów z tym FS:

  • Wysoka prędkość;
  • Obsługa konfiguracji składowania na wielu dyskach - można podłączyć / odłączyć dyski do systemu plików w locie, a także tworzyć konfiguracje RAID różnych poziomów. Można utworzyć konfigurację z przeplotem lub dublowaniem dla poszczególnych katalogów.
  • Możesz włączyć przezroczystą kompresję danych (Zlib - wyższy współczynnik kompresji, LZO - szybka kompresja, w fazie rozwoju - snappy, LZ4);
  • Defragmentacja systemu plików online;
  • Wbudowana obsługa dysków SSD SSD;
  • Monitorowanie integralności bloków danych i metadanych przy użyciu sum kontrolnych;
  • Zdolność do tworzenia pod-objętości (subvolumes);
  • Możliwość konwersji istniejących systemów plików ext3 / ext4 na btrsf;
  • Przestrzennie wydajne (wydajne przestrzennie) pakowanie małych plików;
  • Wydajne indeksowanie katalogów;
  • Wśród planowanych funkcji jest przesyłanie najczęściej używanych danych do najszybszego urządzenia.

Najbardziej kompletne i istotne informacje można znaleźć na stronie strona główna projekt.

Najważniejszą wadą Btrfs w chwili obecnej jest jego status. Z jednej strony obecna wersja wersji 3.13 w momencie pisania tego tekstu jest uważana za stabilną, z drugiej strony programiści otwarcie deklarują, że jest ona nadal w fazie testowania i nie jest zalecana do użytku przemysłowego.

Okazuje się, że podczas używania wcześniejszych wersji Btrsf dane znikały niestabilnie, teraz znikną stabilnie (tylko żartują).

Jeśli chodzi o szybkość, zasoby Phoronix zostały opublikowane w 2011 roku dane Wydajność systemu plików Btrfs podczas pracy bez kompresji danych, kompresja przy użyciu metody ZLib i kompresja przy użyciu metody LZO.

W dwóch z trzech wykonanych testów (Compile Bench i Dbench Btrfs) wersja kompresji LZO z pewnością wyprzedziła zarówno wersję nieskompresowaną, jak i wersję kompresji ZLib. W niektórych przypadkach różnica prędkości różniła się prawie o rząd wielkości (!).

W Threaded IO Tester LZO przegrał z nieskompresowaną wersją i ZLib z 10% do 33%.

Ogólnie rzecz biorąc, pomiar rzeczywistych charakterystyk prędkości urządzenia pamięci masowej nie jest łatwym zadaniem. Jakiś czas temu próbował ocenić Wpływ kompresji NTFS na szybkość odczytu danych w systemie Windows 7. Wynik był dziwny, co dziwne, w zależności od typu napędu. Nie można wyciągnąć jednoznacznych wniosków.

Znaczne zwiększenie szybkości FS w oparciu o wyniki dwóch testów i niewielka awaria w jednym z nich skłaniają do decyzji o zainstalowaniu systemu operacyjnego Linux na tym Btrfs z włączoną kompresją .

Instalacja Linuksa na Btrfs z włączoną kompresją

Stary ASUS Eee PC 900 będzie ponownie testowym stanowiskiem dla królików, czego nie widział przez lata. Zastanawiam się, ilu ludzi dziś przetrwało tego pierwszego przedstawiciela wygasłej rodziny netbooków dzisiaj?

W przypadku planowanego eksperymentu z Btrfs jest to tylko próbka idealna.

Po pierwsze, dwa małe dyski SSD (4 GB i 8 GB), z których większość jest również dwa razy wolniejsza od małej. W rzeczywistości oba dyski flash są bardzo wolne i nie mają ze sobą nic wspólnego, przynajmniej pod względem szybkości, z nowoczesnymi dyskami SSD.

Po drugie, samo urządzenie na procesorze Intel Celeron M 900 MHz jest bardzo wolne, co natychmiast pozwoli nawet bez testów na wizualną ocenę sukcesu lub niepowodzenia tego eksperymentu.

Pierwotnie planowałem zainstalować Linux Mint-17.1 xfce na Eee PC 900. Jednak już wkrótce musieliśmy pożegnać się z tym pomysłem. Instalator Linux Mint wymagał co najmniej 8,2 GB wolnego miejsca na dysku i nie chciał oglądać ani drugiego dysku, ani woluminu Btrfs o rozmiarze prawie 12 GB wstępnie zmontowanego z dwóch dysków. Aby wyjaśnić instalatorowi, że instalacja zostanie wykonana na skompresowanym woluminie i wystarczy pojedynczy dysk o pojemności 4 GB, w ogóle nie było mowy.

Kolejne sprawdzenie w wirtualnej maszynie VirtualBox wykazało, że aby zainstalować 32-bitową wersję Linux Mint-17.1 xfce na skompresowanym LZO, potrzebujesz tylko 2,6 GB

Zadanie można łatwo rozwiązać za pomocą LVM, jak to opisano tutaj , ale naprawdę nie chciałem dodawać absolutnie niepotrzebnej warstwy w tym przypadku między dyskami a systemem plików Btrfs - sam w sobie wykonuje doskonałą pracę w konfiguracjach z wieloma dyskami.

To tylko problem tego netbooka ze względu na mały rozmiar dysków. Jest mało prawdopodobne, że powtórzy się na innym komputerze. Chociaż w dystrybucji Linux Mint chciałbym zobaczyć, jak instalator jest mądrzejszy.

Jeśli myślisz o zainstalowaniu Linux Mint w systemie plików Btrfs, pamiętaj, że dystrybucja, przynajmniej ta, o której mowa, nie zawiera obsługi tego systemu plików. Aby móc formatować partycje za pomocą Btrfs, musisz zainstalować btrfs-tools :

sudo apt-get zainstaluj btrfs-tools

Ponieważ obsługa Btrfs jest zawarta w jądrze, Mint uruchomi się po instalacji, ale aby wykonać pewne manipulacje z woluminami, instalacja narzędzi btrfs będzie musiała zostać powtórzona.

Jako alternatywa wybrałem lekkie zachmurzenie Mięta pieprzowa os ze środowiskiem graficznym LXDE (Lightweight X11 Desktop Environment) . Była wcześniej wspomniana recenzja Dystrybucje Linuksa.

Kolejne wydarzenia pokazały, że wybór był bardzo udany. Lekki zestaw aplikacji i zwinne środowisko - to jest to, czego potrzebujesz do przyjemnego netbooka.

Najnowsza 5. wersja tego systemu operacyjnego w momencie pisania tego tekstu opiera się na Ubuntu 14.04 LTS z pięcioletnim okresem wsparcia. Możliwość pracy z systemem plików Btrfs jest natychmiastowa.

Problem z instalacją polegał na tym, że kompresja jest włączona w Btrfs podczas fazy montowania systemu plików (-o compress = lzo / zlib), a standardowy instalator Linuksa, przynajmniej w systemach Ubuntu i bazujących na nim, nie pozwala na wybór zaawansowanych opcji.

Znaleziono bardzo eleganckie i proste rozwiązanie tego problemu to podręcznik.

  • Utwórz rozruchowy dysk flash USB przy użyciu Universal USB Installer. Ładujemy z niego komputer i idziemy do terminala:

sudo –i

  • Zmień nazwę pliku wykonywalnego na mount.bin

mv / bin / mount /bin/mount.bin

  • Utwórz plik skryptu montowania

gedit / bin / mount

Zamiast gedit możesz użyć dowolnego edytora tekstu zawartego w Live CD.

Wpisz następujący kod w mount:

#! / bin / sh
jeśli echo [email protected] | grep "btrfs"> / dev / null; wtedy
/bin/mount.bin [email protected] -o compress-force = lzo
inaczej
/bin/mount.bin [email protected]
fi

Aby uniknąć błędów, możesz wstępnie utworzyć plik tekstowy z określoną zawartością i zapisać go na dysku flash USB Live lub otworzyć tę stronę bezpośrednio w sesji Live i skopiować z niej.

  • Zapisz plik i wykonaj go:

chmod 755 / bin / mount

  • Rozpoczynamy instalację.

Nie różni się na przykład od opisanego tutaj .

Musisz samodzielnie wykonać partycjonowanie. Aby to zrobić, na etapie „Typ instalacji” wybierz „Inna opcja” .

Pod / boot, konieczne jest utworzenie partycji o rozmiarze około 200 MB na początku dysku. W przeciwnym razie system nie uruchomi się ze skompresowanego dysku.

W tym przypadku nie musisz przydzielać oddzielnej partycji dla / home - podczas instalacji automatycznie zostanie utworzony pod-wolumin dla tego katalogu (subvolum - / @ / home).

Jeśli system jest zainstalowany na zwykłym dysku (nie SSD), należy wykonać partycję wymiany z woluminem 2 x RAM.

Na powołanie katalogów można odczytać system operacyjny Linux tutaj .

  • Kontynuujemy standardową procedurę instalacji i czekamy na jej zakończenie.

Przed pierwszym restartem możesz natychmiast edytować fstab ( tabela systemów plików ). Aby to zrobić, musisz zamontować partycję wybraną podczas instalacji w katalogu głównym systemu plików.

Jeśli tak było, na przykład sda2, to:

mount / dev / sda2 / mnt
gedit / mnt / @ / etc / fstab

Należy pamiętać, że partycja główna również trafiła do woluminu podrzędnego, a ścieżka do niego zawiera „@”.

Znajdź w fstab wiersze dotyczące montowania woluminów Btrfs i zastąp domyślne wartości kompresją = lzo (patrz fstab dla konkretnego przykładu poniżej).

  • Uruchom ponownie komputer, teraz z dysku twardego

Dodawanie drugiego dysku do systemu plików Btrfs

Jak wspomniano powyżej, Btrfs zapewnia wiele możliwości pracy z konfiguracjami pamięci wielodyskowych. Możesz utworzyć macierze RAID o różnych poziomach lub po prostu zwiększyć dostępną przestrzeń istniejącej partycji, łącząc z nią nowe dyski lub partycje dysku.

Dodatkowe dyski można podłączyć lub odłączyć w działającym systemie w dowolnym momencie.

Domyślnie podczas umieszczania partycji na wielu dyskach dane są dystrybuowane bez rezerwacji, a rozmiar systemu plików jest równy ich całkowitej objętości. W tym przypadku metadane są dublowane na dwóch urządzeniach. Jeśli dysk jest jeden, umieszcza się na nim kopię metadanych.

Dodaj dodatkowy dysk / dev / sdc do już utworzonej partycji / dev / sda2

sudo btrfs device dodaj / dev / sdb /

gdzie „/” jest punktem podłączenia (ścieżką). Ponieważ katalog domowy jest również zamontowany na woluminie Btrfs, możesz użyć „/ home”.

Jeśli sdc zostało już sformatowane w Btrfs, być może polecenie będzie wymagało klucza –f.

Natychmiast po dodaniu nowego dysku pliki przechowywane na pierwszym dysku pozostają na miejscu. Dołączony dysk zostanie wypełniony w procesie. Jeśli potrzebujesz natychmiastowej redystrybucji plików, wykonaj równoważenie:
sudo btrfs balance start /
W zależności od ilości danych i charakterystyki szybkości dysków, proces ten może być długi.
Jeśli używasz dysków (lub partycji) o tym samym rozmiarze, możesz konwertować pojedyncze urządzenie do macierzy RAID w podróży.
btrfs balance start -dconvert = raid1 -mconvert = raid1 /
Rezultatem jest macierz RAID z dublowaniem danych i metadanych. Podobnie można zbudować RAID na dowolnym poziomie, nie zapominając o liczbie wymaganych dysków.

Możesz ocenić wynik, uruchamiając polecenie:

sudo btrfs system plików pokaż /

sudo btrfs system plików pokaż /

Uzyskaj informacje o ilości metadanych:
system plików btrfs df /
Uzyskaj informacje o ilości metadanych:   system plików btrfs df /

Nie robiłem od razu równoważenia, ale kilka dni po tym, jak netbook zaczął być aktywnie używany. Zaskoczenie było spowodowane faktem, że Btrfs niespodziewanie przeniósł ~ 85% danych na wolniejszy dysk. Chciałbym myśleć, że to właściwa decyzja. W każdym razie jest to bardzo interesujący wynik.

Dodatkowa optymalizacja systemu operacyjnego Linux do pracy na dyskach SSD

Aby przedłużyć żywotność dysku SSD i zwykłego dysku flash, należy zmniejszyć dla nich liczbę operacji zapisu na jednostkę czasu. Można to zrobić, optymalizując opcje montowania w pliku fstab.

Niezarejestrowany system plików ext2 nie został przypadkowo wybrany jako system plików dla katalogu / boot. Systemy plików z dziennikami są z jednej strony odporne na sytuacje awaryjne, ale z drugiej strony zwiększają liczbę rekordów na dysku twardym.

W przypadku partycji Btrfs hostowanych na dysku SSD dodaj opcję ssd . Jak zmieni się ten algorytm po pracy z dyskiem nie jest w pełni znany. Można założyć, że podczas uruchamiania lub w trakcie pracy nieużywane bloki będą wyszukiwane na dysku i wydawane regularnie. Jednym słowem, nie będzie gorzej.

Zauważono, że w przypadku dysków SSD starego typu opcja ssd_spread może być bardziej odpowiednia.

Operacje odczytu plików mogą również spowodować duże obciążenie dysku SSD, ponieważ przy każdym dostępie do pliku rejestrowany jest czas dostępu do pliku lub katalogu ( atime ). Zapis na dysk występuje nawet podczas odczytu z pamięci podręcznej.

Aby tego uniknąć, możesz dodać opcje noatime, nodiratime , które wyłączają zapisywanie znaczników czasu odpowiednio dla plików i katalogów (według niektórych źródeł noatime zawiera nodiratime ).

Wyłączenie atime nie tylko przedłuża żywotność dysku twardego, ale jak wspomniano to artykuł, 30% zwiększa prędkość systemu. Jednak nie wszystkie aplikacje będą mogły poprawnie działać z wyłączonymi znacznikami czasu.

Alternatywą dla nich może być bardziej demokratyczna opcja relatime . Gdy jest używany, znaczniki czasu są aktualizowane, ale nie za każdym razem, gdy dostęp do pliku jest uzyskiwany, ale tylko wtedy, gdy plik został zmieniony od ostatniego rekordu czasu.

Rejestrujemy relatime dla wszystkich sekcji znajdujących się na dysku SSD.

Aby jeszcze bardziej uprościć życie dysku SSD, a jednocześnie poprawić wydajność komputera, przenosimy pliki tymczasowe, narzędzia i dzienniki do pamięci RAM za pomocą systemu plików tmpfs . Aby to zrobić, dodaj do końca fstab dyrektywy montowania odpowiednich katalogów w tmpfs zgodnie z zaleceniami podanymi przez tutaj .

W końcu to zrozumiałem:


# / etc / fstab: statyczna informacja o systemie plików.
#
# <system plików> <punkt montowania> <typ> <opcje> <zrzut> <pass>
# / był na / dev / sda2 podczas instalacji
UUID = 6bdc62a7-9964-4558-8594-8137271e4591 / btrfs compress = lzo, ssd_spread, relatime, [email protected] 0 1
# / boot był na / dev / sda1 podczas instalacji
UUID = 256ce960-d9fd-4b9f-b336-cdac0915a33d / boot ext2 relatime 0 2
# / home był na / dev / sda2 podczas instalacji
UUID = 6bdc62a7-9964-4558-8594-8137271e4591 / home btrfs compress = lzo, ssd_spread, relatime, [email protected] 0 2
#
tmpfs / tmp tmpfs rw, rozmiar = 250m 0 0
tmpfs / run tmpfs rw 0 0
tmpfs / var / lock tmpfs rw 0 0
tmpfs / var / log tmpfs rw, rozmiar = 10m 0 0

Zapisz fstab i przejdź do sysctl.conf

sudo gedit /etc/sysctl.conf

Dodaj na koniec pliku:

vm.dirty_writeback_centisecs = 15000

Parametr w setnych sekundy określa, jak często dane będą zapisywane na dysku z pamięci podręcznej. W tym przypadku będzie to co 15 sekund. W ten sposób ponownie zmniejszamy liczbę operacji zapisu na dysku SSD na jednostkę czasu.

To oczywiście zwiększa prawdopodobieństwo utraty danych w przypadku nieoczekiwanej przerwy w zasilaniu. W przypadku laptopa lub netbooka z działającą baterią prawdopodobieństwo takiej uciążliwości jest bardzo małe.

To nie wszystko. Działania optymalizacyjne można kontynuować i, na przykład, przenieść w pamięci podręcznej przeglądarki ramdysku.

Opcje montowania systemu plików Btrfs dla tradycyjnych mechanicznych dysków twardych

Dysk SSD SSD w netbooku jest prawdopodobnie wyjątkiem, a nie regułą. Dlatego dla tych, którzy chcą poeksperymentować ze mną podczas instalowania Linuksa na Btrfs, podam kilka przydatnych opcji montażu konwencjonalnych woluminów dysków HDD, oznaczonych tym systemem plików.

kompresuj - odejdź. Zgodnie z testami przedstawionymi na strona Phoronix już pod koniec 2010 roku, kompresja daje znaczny wzrost szybkości operacji na dysku.

space_cache - umożliwia buforowanie danych o wolnych blokach w pamięci. Bez tej opcji podczas wyszukiwania wolnego miejsca, przed nagraniem Btrfs będzie skanować całe drzewo za każdym razem. Zgodnie z wynikami większości testów Phoronix , włączenie opcji space_cache daje zwiększenie szybkości dysku, choć nie tak znaczące, jak opcja kompresji .

autodefrag - defragmentuj pliki w locie.

Ostatecznie dla HDD powinien wyglądać tak:

# / etc / fstab: statyczna informacja o systemie plików.
#
# <system plików> <punkt montowania> <typ> <opcje> <zrzut> <pass>
# / był na / dev / sda2 podczas instalacji
UUID = 6bdc62a7-9964-4558-8594-8137271e4591 / btrfs compress = lzo, space_cache, autodefrag, relatime, [email protected] 0 1
# / boot był na / dev / sda1 podczas instalacji
UUID = 256ce960-d9fd-4b9f-b336-cdac0915a33d / boot ext2 relatime 0 2
# / home był na / dev / sda2 podczas instalacji
UUID = 6bdc62a7-9964-4558-8594-8137271e4591 / home btrfs compress = lzo, space_cache, autodefrag, relatime, [email protected] 0 2
#

Wniosek

Nie będę wyciągał żadnych wniosków na temat celowości korzystania z systemu plików Btrfs. Czas działania komputera z nowym systemem plików jest wciąż mały, chociaż staram się go aktywnie używać. Coś mi mówi, że wszystko będzie dobrze.

Ogólne wrażenie szybkości i stabilności systemu Peppermint OS 5 z kompresją systemu plików LZO na Eee PC 900 jest najbardziej pozytywne.

Jeśli powiem, że system leci, nie uwierzysz mi. I słusznie. To stare urządzenie na 915-tym chipsecie z Celeron-M 900 nie może latać z definicji. Ale w porównaniu do siebie, w innych systemach operacyjnych działa naprawdę zaskakująco szybko. Jak mówią, wynik przekroczył oczekiwania. Być może ta ostatnia instalacja była jak dotąd najbardziej udana.

Ponownie, nie zobowiązuję się do stwierdzenia, że ​​główną zaletą tego jest btrfs compress = lzo . Wszystkie ustawienia optymalizacji miały większy lub mniejszy stopień. Ale fakt, że system plików odegrał swoją pozytywną, a nie ostatnią rolę, oczywiście.

Aby mieć pojęcie o stawce, oto niektóre cechy czasu.

Uruchomienie komputera ze stanu wyłączenia do pełnego obciążenia komputera zajmuje około 60 sekund. Spośród nich ~ 15 sekund to POST, a także ~ 15 sekund to skanowanie systemu plików Btrfs. Różnica w szybkości między opcjami montowania ssd i ssd_spread nie była widoczna.

Pierwsze po włączeniu komputera uruchomienie przeglądarki Google Chroome trwa 12 sekund przed pojawieniem się okna, 20 sekund ładuje stronę główną Google z połączeniem z kontem i renderowaniem wszystkich obrazów.

Ponowne uruchomienie przeglądarki Chroome ze startową Google - 10 sekund. Pobierz stronę główną Yandex - 7 sekund.

Otwieranie e-booka w FBReader - 2 sekundy, uruchomienie edytora tekstu AbyWord - 4 sekundy, arkusz kalkulacyjny Gnumeric - 2 sekundy, otwarcie folderów plików w menedżerze plików PCManFM - natychmiast.

Myślę, że to wystarczy, aby uzyskać ogólny pomysł. Jak widać, na zmarnowane wysiłki nie zostały zmarnowane i pozwoliły na zauważalne ożywienie starego komputera.

Zastanawiam się, ilu ludzi dziś przetrwało tego pierwszego przedstawiciela wygasłej rodziny netbooków dzisiaj?