Punkt wymiany NTFS — NTFS reparse point

NTFS punkt ponownej analizy jest rodzajem NTFS systemu plików obiektu. Jest dostępny z systemem NTFS v3.0, który można znaleźć w systemie Windows 2000 lub nowszych wersjach. Punkty ponownej analizy umożliwiają rozszerzenie systemu plików NTFS. Punkt ponownej analizy zawiera znacznik ponownej analizy i dane, które są interpretowane przez filtr systemu plików identyfikowany przez ten znacznik. Microsoft zawiera kilka tagów domyślnych tym NTFS dowiązania symboliczne , punktów węzłowych katalog , punkty woluminów i gniazd domeny Unix . Ponadto punkty ponownej analizy są używane jako symbole zastępcze dla plików przenoszonych przez Hierarchiczny System Magazynowania Zdalnego Windows 2000 . Mogą również działać jako dowiązania twarde , ale nie ograniczają się do wskazywania plików na tym samym woluminie: mogą wskazywać na katalogi na dowolnym woluminie lokalnym. Ta funkcja jest dziedziczona do ReFS .

Sterownik open source NTFS-3G implementuje wbudowaną obsługę punktów ponownej analizy typu łącza, a mianowicie łączy symbolicznych i punktów połączeń. Dostępny jest system filtrów wtyczek, który obsługuje dodatkowe typy punktów ponownej analizy, umożliwiając odczytanie plików deduplikowanych porcji, plików skompresowanych systemowo i plików OneDrive .

Struktura

Punkt ponownej analizy ma następującą ogólną strukturę, w postaci struktury C:

struct REPARSE_BUFFER {
  uint32_t  ReparseTag;
  uint32_t  ReparseDataLength;
  uint16_t  Reserved;
  uint8_t   DataBuffer[]; // flexible array member
}

Znacznik ponownej analizy jest unikalny dla każdego typu punktu ponownej analizy. Określa, do której obsługi punktu ponownej analizy (zwykle sterownika filtru systemu plików) menedżer we/wy deleguje przetwarzanie. Firma Microsoft udostępnia dokumentację dotyczącą niektórych „publicznych” typów znaczników.

Rodzaje

Punkty montowania głośności

Punkty montowania woluminów są podobne do punktów montowania w systemie Unix , gdzie katalog główny innego systemu plików jest dołączony do katalogu. W systemie NTFS umożliwia to montowanie dodatkowych systemów plików bez konieczności osobnej litery dysku (takiej jak lub ) dla każdego z nich. C:D:

Po zamontowaniu woluminu nad istniejącym katalogiem innego woluminu zawartość poprzednio wymieniona w tym katalogu staje się niewidoczna i zostaje zastąpiona zawartością katalogu głównego zamontowanego woluminu. Zamontowany wolumin może nadal mieć przypisaną własną literę dysku. System plików nie pozwala na wzajemne montowanie woluminów na sobie. Punkty montowania woluminów mogą być trwałe (ponownie montowane automatycznie po ponownym uruchomieniu systemu) lub nietrwałe (musi być ponownie zamontowane ręcznie po ponownym uruchomieniu).

Zamontowane woluminy mogą korzystać z innych systemów plików niż tylko NTFS, prawdopodobnie z własnymi ustawieniami zabezpieczeń i mapowaniem praw dostępu zgodnie z zasadami zdalnego systemu plików.

Zastępcze nazwy punktów montowania woluminów mają postać przestrzeni nazw NT \??\DeviceName\. Węzły zazwyczaj \??\<drive>:\odnoszą się do woluminu z istniejącą literą sterownika, podczas gdy prawdziwe punkty montowania woluminu \??\Volume{<guid>}odnoszą się do dowolnego woluminu. Ścieżki UNC są nieprawidłowe dla skrzyżowań.

Węzły katalogowe

Połączenia katalogów są definiowane przy użyciu dokładnie tego samego mechanizmu (i tagu reparse: IO_REPARSE_TAG_MOUNT_POINT) co punkty montowania woluminów. Jedyna różnica polega na tym, że ich nazwy zastępcze wskazują na podkatalog innego woluminu, który zwykle ma już literę dysku. Ta funkcja jest koncepcyjnie podobna do dowiązań symbolicznych do katalogów w systemie Unix , z tą różnicą, że celem w systemie NTFS musi być zawsze inny katalog (typowe systemy plików Unix pozwalają na dowiązanie symboliczne dowolnego typu).

Na przykład katalog C:\exampledirz atrybutem przyłączenia katalogu, który zawiera odsyłacz do, D:\linkeddirbędzie automatycznie odwoływał się do katalogu, D:\linkeddirgdy uzyskuje do niego dostęp aplikacja w trybie użytkownika.

Połączenia katalogów (które można utworzyć za pomocą polecenia MKLINK /J junctionName targetDirectoryi usunąć za RMDIR junctionNamepomocą wiersza poleceń) są trwałe i rozwiązywane po stronie serwera, ponieważ współdzielą tę samą dziedzinę zabezpieczeń systemu lokalnego lub domeny, w której zamontowany jest wolumin nadrzędny, i to samo ustawienia bezpieczeństwa dla jego zawartości jako zawartości katalogu docelowego; jednak samo połączenie może mieć różne ustawienia zabezpieczeń. Odłączenie przyłączenia katalogów nie powoduje usunięcia plików w katalogu docelowym.

Niektóre połączenia katalogów są instalowane domyślnie w systemie Windows Vista, aby zapewnić zgodność z poprzednimi wersjami systemu Windows, na przykład Documents and Settingsw katalogu głównym dysku systemowego, który łączy się z Userskatalogiem fizycznym w katalogu głównym tego samego woluminu. Jednak są one domyślnie ukryte, a ich ustawienia bezpieczeństwa są skonfigurowane tak, że Eksplorator Windows odmówi ich otwarcia z poziomu powłoki lub w większości aplikacji, z wyjątkiem lokalnego wbudowanego użytkownika SYSTEM lub lokalnej grupy Administratorzy (oba użytkownicy konta są używane przez instalatorów oprogramowania systemowego). To dodatkowe ograniczenie bezpieczeństwa prawdopodobnie zostało wprowadzone w celu uniknięcia sytuacji, w której użytkownicy mogą znaleźć duplikaty plików w połączonych katalogach i usunąć je przez pomyłkę, ponieważ semantyka połączeń katalogów nie jest taka sama jak w przypadku dowiązań twardych; zliczanie odwołań nie jest używane na zawartości docelowej, a nawet na samym kontenerze, do którego się odwołuje.

Węzły katalogów to miękkie dowiązania (zachowują się nawet po usunięciu katalogu docelowego), pracujące jako ograniczona forma dowiązań symbolicznych (z dodatkowym ograniczeniem lokalizacji celu), ale jest to zoptymalizowana wersja umożliwiająca szybsze przetwarzanie punkt ponownej analizy, z którym są one zaimplementowane, z mniejszym obciążeniem niż nowsze dowiązania symboliczne NTFS i mogą być rozwiązane po stronie serwera (gdy znajdują się w zdalnych katalogach współdzielonych).

Dowiązania symboliczne

Dowiązania symboliczne (lub dowiązania miękkie) zostały wprowadzone w systemie Windows Vista. Dowiązania symboliczne są rozwiązywane po stronie klienta. Kiedy więc udostępniane jest łącze symboliczne, cel podlega ograniczeniom dostępu na kliencie, a nie na serwerze.

Dowiązania symboliczne mogą być tworzone albo do plików (utworzonych za pomocą MKLINK symLink targetFilename) albo do katalogów (utworzony za pomocą MKLINK /D symLinkD targetDirectory), ale (w przeciwieństwie do dowiązań symbolicznych Uniksa) semantyka dowiązania musi być podana wraz z utworzonym dowiązaniem. Jednak cel nie musi istnieć ani być dostępny po utworzeniu dowiązania symbolicznego: gdy zostanie uzyskany dostęp do dowiązania symbolicznego i cel zostanie sprawdzony pod kątem dostępności, NTFS sprawdzi również, czy ma poprawny typ (plik lub katalog); zwróci błąd nie znaleziony, jeśli istniejący cel ma zły typ.

Mogą również odwoływać się do katalogów współdzielonych na zdalnych hostach lub plikach i podkatalogach w katalogach współdzielonych: ich obiekt docelowy nie jest montowany natychmiast podczas rozruchu, ale tylko tymczasowo na żądanie podczas otwierania ich za pomocą interfejsu API OpenFile()lub CreateFile(). Ich definicja jest trwała na woluminie NTFS, na którym są tworzone (wszystkie typy dowiązań symbolicznych można usunąć tak, jakby były plikami, korzystając DEL symLinkz wiersza polecenia lub wsadowego).

Dane dowiązania symbolicznego są podobne do danych punktu montowania, ponieważ oba używają ścieżki przestrzeni nazw NT. Różnica polega na tym, że dowiązania symboliczne akceptują ścieżki UNC , ale nie montuje woluminu {guid} .

Śledzenie łączy rozproszonych (DLT)

Rozproszone śledzenie łączy umożliwia aplikacjom śledzenie plików, skrótów powłoki lub łączy OLE, nawet jeśli zostały zmienione lub przeniesione do innego woluminu w obrębie tej samej maszyny, domeny lub grupy roboczej. Śledzenie jest zaimplementowane jako usługa systemowa, która wykorzystuje indeks identyfikatora obiektu (OID) przechowywany w metapliku . Gdy aplikacja żąda ścieżki do pliku lub katalogu, usługa śledzenia tworzy wpis OID, który wskazuje na plik, a operacja zmiany nazwy pliku, kopiowania lub przenoszenia do woluminu NTFS v3 również kopiuje identyfikator obiektu. Dzięki temu usługa śledzenia może ostatecznie znaleźć plik docelowy.

Deduplikacja danych

Jeśli istnieje kilka katalogów zawierających różne, ale podobne pliki, niektóre z tych plików mogą mieć identyczną zawartość. Magazyn jednoinstancyjny , który można znaleźć w systemach Windows Server 2000 do Windows Storage Server 2008, umożliwia scalanie identycznych plików w jeden plik i tworzenie odwołań do tego scalonego pliku. SIS składa się z filtra systemu plików, który zarządza kopiami, modyfikacjami i łączeniem z plikami; oraz usługę przestrzeni użytkownika (lub groveler ), która wyszukuje identyczne pliki i wymagają scalenia. SIS został zaprojektowany głównie dla serwerów instalacji zdalnej, ponieważ mogą one mieć wiele obrazów instalacyjnych, które zawierają wiele identycznych plików; SIS pozwala na ich konsolidację, ale w przeciwieństwie do np. twardych łączy, każdy plik pozostaje odrębny; zmiany w jednej kopii pliku pozostaną niezmienione. Jest to podobne do kopiowania przy zapisie , które jest techniką, dzięki której kopiowanie pamięci nie jest tak naprawdę wykonywane, dopóki jedna kopia nie zostanie zmodyfikowana.

Od systemu Windows Server 2012 istnieje nowy mechanizm deduplikacji danych oparty na porcjach (tag 0x80000013), który umożliwia deduplikację plików o podobnej zawartości, o ile zawierają fragmenty identycznych danych. Ten mechanizm jest silniejszy niż SIS. Od systemu Windows Server 2019 funkcja jest w pełni obsługiwana w systemie ReFS.

Hierarchiczne zarządzanie pamięcią masową (HSM)

Hierarchiczne zarządzanie pamięcią masową to sposób przenoszenia plików, które nie są używane przez pewien czas, na tańszy nośnik pamięci. Przy następnym dostępie do pliku punkt ponownej analizy tego pliku określa, czy jest on potrzebny, i pobiera go z magazynu.

Natywna strukturalna pamięć masowa (NSS)

NSS to technologia przechowywania dokumentów ActiveX , która została wycofana przez firmę Microsoft. Pozwoliło to na przechowywanie dokumentów ActiveX w tym samym wielostrumieniowym formacie, którego używa wewnętrznie ActiveX. Filtr systemu plików NSS został załadowany i użyty do przetwarzania wielu strumieni w sposób przezroczysty dla aplikacji, a gdy plik został przeniesiony na wolumin dyskowy niesformatowany w systemie plików NTFS, przeniósłby również wiele strumieni do jednego strumienia.

Gniazdo domeny uniksowej (gniazdo)

W systemie Windows 10 kompilacja 17063 (dla stabilnej wersji 1803) firma Microsoft wprowadziła gniazda domeny Unix do systemu Windows, są one realizowane przy użyciu sterownika jądra afunix.sys i nowego punktu ponownej analizy w systemie plików. Gniazda domeny uniksowej są powszechne w systemach BSD i Linux od wieków i mogą być postrzegane jako standard komunikacji między procesami w tych systemach. Dlatego ich wprowadzenie do systemu Windows pozwoli na uproszczone przyjęcie kodu i przenośność między platformami.

Kompresja systemu

Windows 10 wprowadza kilka algorytmów kompresji tylko do odczytu dla NTFS, zaczerpniętych z Windows Imaging Format . Są to XPRESS4K/8K/16K i LZX . Oba są oparte na LZ77 z kodowaniem entropijnym Huffmana , którego brakowało LZNT1. Są one używane głównie w nowej funkcji CompactOS, która kompresuje całą partycję systemową przy użyciu jednego z tych algorytmów. Można je również ręcznie włączyć dla każdego pliku za pomocą /exeflagi compactpolecenia. Algorytmy dzielą pliki na kawałki z zachowaniem fragmentacji podobnym do kompresji waniliowego NTFS.

Wewnętrznie plik jest rejestrowany jako punkt ponownej analizy ze znacznikiem 0x80000017, aby zarejestrować fakt, że plik został specjalnie skompresowany, a rzeczywiste dane są przechowywane w alternatywnym strumieniu danych o nazwie „WofCompressedData” (dla systemu plików nakładki systemu Windows). Nowy projekt jest przeznaczony wyłącznie do dostępu tylko do odczytu, więc wszelkie zapisy do skompresowanych plików powodują pełną dekompresję pliku w systemie Windows.

OneDrive

OneDrive oznacza pliki i katalogi pobrane do magazynu lokalnego jako punkt ponownej analizy tagiem 0x9000001a. Rzeczywiste dane są przechowywane normalnie.

Znane zagrożenia

Stuxnet jako część jego serii Win32 wykorzystuje wykorzystuje punkty połączenia NTFS jako część ogólnego trybu pracy.

Zobacz też

Bibliografia

Linki zewnętrzne