LVM, jak wszystko inne, jest mieszanym błogosławieństwem.
Jeśli chodzi o wydajność, LVM trochę ci przeszkodzi, ponieważ jest to kolejna warstwa abstrakcji, którą należy opracować, zanim bity uderzą (lub można je odczytać) z dysku. W większości sytuacji ten hit wydajności będzie praktycznie niemożliwy do zmierzenia.
Zalety LVM obejmują to, że można dodać więcej pamięci do istniejących systemów plików bez konieczności przenoszenia danych. Większość ludzi lubi tę zaletę.
Jedną wadą LVM używanego w ten sposób jest to, że jeśli twoja dodatkowa pamięć obejmuje dyski (tj. Obejmuje więcej niż jeden dysk), zwiększasz prawdopodobieństwo, że awaria dysku będzie kosztować twoje dane. Jeśli twój system plików obejmuje dwa dyski i jeden z nich ulegnie awarii, prawdopodobnie straciłeś. Dla większości ludzi jest to akceptowalne ryzyko z powodów związanych z przestrzenią i kosztami (tj. Jeśli jest to naprawdę ważne, będzie budżet na poprawne wykonanie tego) - i ponieważ, jak mówią, kopie zapasowe są dobre, prawda?
Dla mnie jedynym powodem nieużywania LVM jest to, że odzyskiwanie po awarii nie jest (a przynajmniej nie było) dobrze zdefiniowane. Dysku z woluminami LVM, na którym był zakodowany system operacyjny, nie można w prosty sposób podłączyć do innego komputera i odzyskać z niego dane; wydaje się, że wiele instrukcji dotyczących odzyskiwania woluminów LVM zawiera kroki takie jak cofnięcie się w czasie i uruchomienie vgcfgbackup, a następnie skopiowanie wynikowego pliku / etc / lvmconf do systemu, na którym znajduje się Twój wolumin ukryty . Mam nadzieję, że wszystko zmieniło się w ciągu trzech lub czterech lat, odkąd ostatni raz musiałem na to patrzeć, ale osobiście nigdy nie używam LVM z tego powodu.
To mówi.
W twoim przypadku zakładam, że maszyny wirtualne będą stosunkowo małe w porównaniu do systemu hosta. Oznacza to, że bardziej prawdopodobne jest, że później będziesz chciał rozszerzyć pamięć na maszynie wirtualnej; najlepiej to zrobić, dodając inny dysk wirtualny do maszyny wirtualnej, a następnie powiększając systemy plików maszyny wirtualnej, których dotyczy problem. Nie masz podatności na łączenie wielu dysków, ponieważ dyski wirtualne najprawdopodobniej będą na tym samym urządzeniu fizycznym w systemie hosta.
Jeśli maszyny wirtualne będą miały dla ciebie jakiekolwiek znaczenie, w jakiś sposób będziesz RAID'ował system hosta, co zmniejszy elastyczność późniejszego powiększania pamięci. Tak więc elastyczność LVM prawdopodobnie nie będzie wymagana.
Zakładam więc, że nie użyłbyś LVM w systemie hosta, ale zainstalowałbyś maszyny wirtualne, aby korzystać z LVM.
Ogólnie: jeśli dodasz nową warstwę złożoności („aka more to do do wykonania”), nic nie będzie szybsze. Uwaga: dodajesz tylko pracę, a nie „zmieniasz” ich sposób wykonywania pracy.
Jak możesz coś zmierzyć? Cóż, tworzysz jedną partycję z LVM, a drugą bez, a następnie używasz normalnego testu porównawczego i po prostu go uruchamiasz. Jak ludzie w
http://www.umiacs.umd.edu/~toaster/lvm-testing/
Jak się wydaje, tylko nieznaczny wpływ na prędkość. Wydaje się, że jest to zsynchronizowane z ustaleniami osoby, która przeprowadziła test porównawczy:
„ext4 działa szybciej z LVM niż bez, a inne testy porównawcze systemu plików” Wątek Listy adresowej jądra Linux
Ale po prostu przetestuj go samodzielnie i sprawdź, czy Twój sprzęt i system operacyjny, którego chcesz użyć, zachowują się tak samo i czy możesz zignorować (może nieznacznie) wpływ dodatkowej warstwy złożoności, która zapewnia elastyczne przechowywanie.
Czy powinieneś dodać LVM do systemu operacyjnego gościa: To zależy od tego, czy potrzebujesz, aby system operacyjny gościa miał również elastyczną pamięć masową, prawda? Twoje potrzeby decydują o tym, co musisz wdrożyć.
źródło
Nie powinieneś, ponieważ system plików ext3 lub ext 4 w hoście powinien być wystarczający. Nie ma potrzeby dodawania do niej innej grupy woluminów oraz woluminu fizycznego i woluminu logicznego.
źródło
Nie byłoby większego efektu wydajności tylko z lvm, ale jeśli chcesz go wziąć, użyj zamiast tego ZFS. Otrzymujesz zarządzanie wolumenami i możliwość odzyskiwania oraz wiele innych wspaniałych funkcji.
źródło
Żadna wzmianka o lvm2 nie może sprawić, że prędkość odczytu i zapisu zostanie zwielokrotniona (podobnie jak raid0). Osobiście używam 3 identycznych dysków, a nad nimi lvm2 w trybie stripping, operacje odczytu i zapisu zajmują 1/3 czasu, co jest dużym efektem, system plików jest o trzy razy szybszy. Wiem: jakikolwiek dysk ulegnie awarii i wszystkie dane na nim nie będą dostępne; ale to nie znaczy, że zostały utracone, ponieważ BackUPy są MUSZĄ, nic takiego jak Raid, LVM2, ZFS uniknie posiadania BackUP; więc nigdy nie używam mirroringu, raid5 itp., zawsze używam strippingu (aby uzyskać najwyższą wydajność) i synchronizuję BackUPy. ZFS jest świetny do kompresji w locie, a przy parametrze kopiowania większym niż jeden jest jak odbicie lustrzane, ale jedną rzeczą, którą ZFS ma i nikt inny nie ma, jest automatyczne odzyskiwanie w locie zgnilizny bitów (bitów, które spontanicznie zmieniają się podczas dysk jest wyłączony),
Aby wznowić: używam ZFS tylko dla moich kopii zapasowych na dyskach zewnętrznych, wielu (dwóch lub trzech) ssd z lvm2 rozłożonym dla systemu operacyjnego (po aktualizacji i ponawiam klonowanie systemu operacyjnego), zwykle używam niewymiennego systemu operacyjnego; i używam wielu (sześciu) spinnin dysków z lvm2 pozbawionym danych, takich jak maszyny wirtualne, ponownie po każdej zmianie i ponawiam kopie zapasowe; więc po awarii dysku muszę go tylko wymienić i przywrócić ostatnią kopię zapasową; teraz kilka dni mam prędkość zapisu prawie 1,8 GiB / s, więc przywrócenie jednej maszyny wirtualnej z BackUP zajmuje tylko mniej niż 30 sekund (32 GiB na dysk maszyny wirtualnej).
Więc moja odpowiedź brzmi: nie używaj tylko jednej rzeczy, bądź mądry i wykorzystuj to, co najlepsze z każdej części, Lvm2 stripped jest szybszy niż mdraid poziom 0, więcej przy użyciu sześciu wirujących dysków; jedno ostrzeżenie z strippingiem ssd, dwa i trzy są dobre, cztery ssd mogą obniżyć wydajność (moje testy dały niższą prędkość zapisu, gdy użyłem czterech identycznych ssd w trybie stripping, bez względu na to, czy lvm, mdraid0 itp.), wydaje się, że SSD TRIM i takie wzmocnienie zapisu może być główną przyczyną dodawania większej ilości ssd do wolnej objętości, co powoduje niższą prędkość zapisu.
Walcząc z ssd i dowolnym raid0 (woluminami pozbawionymi), idealnie dopasowujesz rzeczy, poprawnie przypisujesz rozmiary klastra do systemu plików, rozmiar stip itp., Więc nikt nie powoduje degradacji; jako przykład: sektor dysku to 2048, więc 2K przy każdym odczycie / zapisie jako minimun, nigdy nie używaj systemu plików, który używa 512 bajtów clusyer, a ponadto lepiej użyć rozmiaru klastra 2K lub 4K; wyobraź sobie teraz, że używasz 3xHDD, każdego z sektorów 2K, więc w każdym klastrze systemu plików Optimun do odczytu / zapisu będzie 3x2K = 6K, ale nie jest to możliwe w wielu systemach plików, pomyśl co, jeśli użyjesz klastra 64K, 64K / 6K = 32 / 3, co powoduje niezrównoważone, więc nieoptymalne itd. Wykonuj matematykę, aby uzyskać optymalny rozmiar klastra.
Moje najlepsze wyniki to: Rozmiar klastra = rozmiar paska * liczba dysków na pasku; w ten sposób każdy odczyt / zapis ma dokładnie taki sam rozmiar, który powoduje, że wszystkie dyski działają, więc poprawa prędkości jest wyjątkowo dobra. Przykładowy rozmiar klastra 192 KB dla 3 dysków o rozmiarze paska 64 KB; inny przykład rozmiar klastra 192 K dla dysku 6 z paskiem 32 K.
I zawsze pamiętaj o testowaniu pojedynczego dysku w bloku 4K, 8K, 16K, 32K, 64K; wiele dysków zapewnia naprawdę złe prędkości przy niższych liczbach, takich jak 4K, ale daje ponad dziesięciokrotnie szybszy czas w przypadku 64K, 128K lub wyższych.
Tak, użycie dużych rozmiarów klastra może spowodować utratę przestrzeni na klastrze lasów każdego pliku (jeśli używasz milionów plików o wielkości tylko 1 bajta każdy) lepiej lepiej użyć systemu kompaktowego / paczki w locie nad systemem plików, na przykład dysk 4TiB z rozmiarem klastra 4K może mieć tylko mniej niż 4TiB / 4K = 1073741824 plików 1Bajt każdy, to tylko 1GiB, jeśli wszystkie pliki mają rozmiar 1Bajt (rozmiar klastra 4K), najgorszy stosunek wielkości klastra, ale jeśli pliki są ogromne, podobnie jak maszyny wirtualne (około 32 GB jako próbka lub zaledwie kilka megabajtów), utracone są tylko w ostatnim klastrze; tak duże pliki, duży rozmiar klastra jest znacznie lepszy pod względem wydajności, ale uważaj, jak korzysta z niego maszyna wirtualna.
Nikt nie powie ci tego sekretu: wewnątrz gościa nie używaj rozmiaru klastra 4K, używaj tego samego rozmiaru klastra co rozmiar klastra, gdzie znajduje się dysk wirtualny, lub jego wielokrotności.
Tak, mam obsesję na punkcie uzyskania największej prędkości wewnątrz dysków dla gości, jak powiedziałem, przy 6 obrotowych dyskach osiągam blisko 1,7 GiB / s, szybkość magistrali SATA III jest wąskim gardłem, a nie same dyski. Używam wysokiej klasy (nie tanich) dysków, pamięci podręcznej 128 MB i prędkości zapisu 283 MB / s każdy.
Dla Ciebie i dla wszystkich: O wiele lepiej jest dowiedzieć się, w jaki sposób rozmiar klastra, rozmiar paska i rozmiar bloku muszą być powiązane przed wykonaniem jakiegokolwiek testu prędkości, w przeciwnym razie testowanie LVM2 lub innego RAID (również ZFS) może dać FALSE wnioski.
Oto przykład: testuję czasy rozruchu Linuksa z dyskami Sata 2x60MiB / s 2,5 cala 5400 obr./min na płycie głównej portów Sata II, a następnie testuję z 2xSSD Sata III (mogą podłączyć więcej niż 250 Mb / s każdy, jeśli są podłączone do Sata III porty), czas rozruchu zajmuje tylko dwie sekundy mniej, tylko dwie sekundy przy pięciominutowym rozruchu, dlaczego? ponieważ większość dysków rozruchowych nie jest używana, działa na RAM i CPU, ale nie we / wy.
Zawsze sprawdzaj, co będziesz robić, a nie tylko prymitywne prędkości (innymi słowy, maksymalna prędkość).
Maksymalna prędkość jest dobra, aby wiedzieć, że bit nie jest reprezentatywny, możesz nie używać dysków z maksymalną prędkością 100% czasu, OS i aplikacje muszą działać na RAM i CPU bez I / O, więc w tym czasie prędkość dysku nie w ogóle ma znaczenie.
Wszyscy mówią, że SSD znacznie poprawia szybkość rozruchu systemu Windows, w moich testach, które są również NIEPRAWIDŁOWE, to tylko ja udowadnia 28 sekund na czas rozruchu prawie osiem minut.
Więc jeśli mnie lubisz: Linux kopiuj do pamięci RAM podczas rozruchu, dysk SSD nie będzie lepszy niż obracanie dysków twardych, przetestowałem również pamięć USB 3.1 Gen2 (odczyt 139 Mb / s), czas uruchamiania jest zależny tylko kilka sekund na pięć minut rozruchu, dlaczego? łatwe, odczyt odbywa się podczas kopiowania do pamięci RAM, po czym dysk / ssd / usb-stick nie jest ponownie używany na pozostałej części śruby, dane są na pamięci RAM, jak napęd pamięci RAM.
Teraz sprzedaję wszystkie moje dyski SSD, które mam, nie poprawiają kopiowania Linux-a na ramie przy rozruchu, ale testy porównawcze mówią, że są one 5 razy szybsze ... zobacz, test porównawczy daje FALSE wnioski ... tak, przetestuj i przetestuj naprawdę dzień pracy.
Mam nadzieję, że to rozwiąże sprawę mężczyzn… LVM ze złym rozmiarem klastra i pasków wpływa znacznie bardziej niż narzut warstwy.
źródło