System plików Lustre jest współdzielonym systemem plików, który umożliwia na szybki transfer danych pomiędzy zasobami dyskowymi dla bardzo dużej liczby klientów (np. węzłów obliczeniowych) jednocześnie.
Na superkomputerze, na systemie plików Lustre bazują następujące zasoby dyskowe:
Nieodpowiednie używanie systemu plików Lustre może doprowadzić do niepotrzebnie dużego obciążenia lub w skrajnych przypadkach do awarii tego podsystemu. Użytkownicy superkomputera powinni zapoznać się ze zbiorem najlepszych praktyk dotyczących systemu plików Lustre znajdujących się poniżej.
System plików Lustre jest zbudowany za pomocą następujących komponentów:
Kiedy program chce dostać się do danych składowanych na Lustre, odpytuje najpierw serwer MDS o położenie pliku. Mając te informacje może zwrócić się bezpośrednio do serwera lub serwerów OSS, które pozwalają na odczyt lub zapis danych.
Nie należy nadużywać polecenia ls -l
. Aby wyświetlić output polecenia ls -l
, klient dla każdego wylistowanego pliku wysyła żądanie zarówno do serwera MDS jak i do serwera(ów) OSS. Nie należy używać również ls
z kolorowaniem składni. Aby wylistować zawartość katalogu powinno się uruchomić ls
bez dodatkowych argumentów, ewentualnie programy find
lub lfs
(z opcją find
).
Należy ograniczyć liczbę plików w katalogach. Operacja otwarcia pliku zakłada blokadę na katalog nadrzędny. Aby zmniejszyć negatywny efekt przy otwieraniu wielu plików powinno się utworzyć strukturę podkatalogów i rozmieścić w niej pliki.
Nie powinno się korzystać z małych plików na Lustre. Ten file system nie jest przystosowany do obsługi takich plików. Jeśli tylko można należy połączyć małe pliki w jeden większy lub korzystać z nich tylko na swoim katalogu /home
.
Jeśli to tylko możliwe należy używać dużych, sekwencyjnych odczytów/zapisów. Jako, że file system Lustre stara się odczytywać/zapisywać dane 1 megabajtowymi blokami, takie działanie pozwali na uzyskanie najlepszej wydajności.
Jeśli to możliwe należy otwierać pliki w trybie read-only
. Jeśli program nie będzie zapisywał do pliku, przy jego otwarciu należy użyć flagi O_RDONLY
. Jeśli dodatkowo nie jest ważny czas dostępu do pliku dobrą praktyką jest użycie flagi O_NOATIME
.