Solaris wylądował

Pojemność to nie problem

Kolejna ważna nowość Solaris 10 to bezpieczny i wprost niebywale skalowalny system plików ZFS (Zettabyte File System). Właściwie jest to system systemów plików, można w nim bowiem zdefiniować oddzielny system plików dla każdego kontenera systemowego, aplikacji, a nawet użytkownika! Podstawowy sekret ZFS leży w fakcie, że integruje on w sobie zarządzanie urządzeniami (dyskami, kontrolerami) oraz menedżera woluminów logicznych, udostępniając systemom plików jeden wielki "zasób dyskowy". Wypada jeszcze dodać, że ZFS nie alokuje systemom plików pojemność nie z góry, lecz na bieżąco, dzięki czemu nie występuje zjawisko "marnowania" przestrzeni dyskowej. ZFS obsługuje także kompresję danych w locie.

Nic nie stoi na przeszkodzie, by na jednym woluminie utworzyć wiele różnych systemów plików (w tym UFS, NFS czy VxFS) - w dotychczasowych rozwiązaniach to nie do pomyślenia. Według Suna pojemność ZFS jest automatycznie rozszerzana/zmniejszana wraz z dodawaniem/wyłączaniem poszczególnych urządzeń - bez konieczności zatrzymywania aplikacji. Maksymalna pojemność "zasobu dyskowego" przeznaczona na dane sięga...

2<sup>128</sup> bajtów, zaś na wszystko inne (metadane systemów plików, kopie snapshot itp.) - 2<sup>64</sup> bajtów.

To nie koniec. Solaris ZFS działa w trybie transakcyjnym - zmiany są zawsze zapisywane w wolnym obszarze i dopiero gdy zostaną zapisane, potwierdza dokonanie zmian i zmienia wskazania do fizycznych zapisów na dysku. ZFS działa więc tak, jak mechanizmy copy-on-write w rozwiązaniach do wykonywania kopii błyskawicznych danych (snapshot). Odzyskiwaniem wolnej przestrzeni dyskowej po zmienionych wpisach zajmuje się działający w tle dedykowany proces.

Dodatkowym zabezpieczeniem danych są 64-bitowe sumy kontrolne (funkcje skrótu) wykonywane dla każdego bloku lub ich grupy równolegle ze zmianą jego/ich zawartości. W połączeniu z transakcyjnością zapisu mechanizm ten w zasadzie gwarantuje spójność danych w każdym czasie. W ZFS można także zdefiniować automatyczne rozkładanie dwóch kopii tych samych danych na dwóch różnych urządzeniach (mirroring). O bezpieczeństwo informacji dba z kolei podsystem szyfrowania danych.

Żadnych fałszywych ruchów

Gdy o bezpieczeństwie mowa, nie można nie wspomnieć o innych udoskonaleniach w tej dziedzinie. System Solaris 10 został wyposażony w system kontroli uprawnień użytkowników i procesów oparty na rolach (RBAC - Role-Based Access Control), co jest bezpośrednim zapożyczeniem z Trusted Solaris. Sednem działania RBAC jest zastąpienie działającego w jądrze systemu mechanizmu przywilejów nowym, który uniemożliwia procesom nabywanie niczym nieograniczonych praw użytkownika root.

Ponieważ wiele procesów wymaga od czasu do czasu dostępu do przywilejów użytkownika root, Sun wprowadził mechanizm automatycznego przyznawania i odbierania takich uprawnień, a ponadto mechanizm pozwalający z biegiem czasu ograniczyć uprawnienia procesu tylko do zestawu uprawnień dla niego typowych. Uprawnienia procesów tworzą coś, co Sun nazywa zoną aplikacyjną, obejmującą jedynie te zasoby, do których za pośrednictwem mechanizmu RBAC proces otrzymał przywileje.

Kolejną nowością w dziedzinie bezpieczeństwa jest Solaris Cryptographic Framework (SCF) - zestaw funkcji kryptograficznych i interfejsów ujednolicony dla wszystkich urządzeń, kontenerów, procesów i użytkowników. SCF niesie ze sobą także bezpośrednie wsparcie dla produkowanych przez Sun Microsystems akceleratorów kryptograficznych oraz zoptymalizowane algorytmy RSA, AES, 3DES i RC4. Wypada też wspomnieć, że w Solaris 10 wbudowano zmodyfikowaną wersję popularnego w środowiskach Linux i BSD, a oferowanego dotychczas niezależnie, firewalla Ipfilter, którego autorem jest Darren Reed. Zapora została zoptymalizowana pod kątem jądra Solaris 10.

System dla sieci

Ambicją Suna jest oferowanie systemu, który zapewnia możliwie najwydajniejszą obsługę aplikacji intensywnie korzystających z sieci. Aby przyspieszyć przetwarzanie, w Solaris 10 Sun częściowo połączył obsługę TCP i IP.

Ponadto zoptymalizował kod w taki sposób, że każdy procesor rezerwuje jeden proces wyłącznie do obsługi sieci, a sesje pochodzące od jednej aplikacji/użytkownika są przetwarzane od początku do końca przez ten sam procesor. Według Suna pozwala to przyspieszyć obsługę TCP/IP nawet o kilkadziesiąt procent.

Konsolidacja dla mas

Większość funkcji Solaris 10, w tym podział systemu na niezależne o siebie partycje (kontenery, zony), dostępna jest nie tylko dla platformy UltraSPARC, ale także dla 32-bitowych platform x86 oraz dla 64-bitowych układów AMD Opteron. Tym samym funkcjonalność znana dotychczas jedynie w przypadku dużych serwerów SMP i mainframe staje się dostępna nawet dla serwerów jednoprocesorowych.

System Solaris 10 (dla platform UltraSPARC, IA-32 i AMD64)
  • Kontenery - możliwość podziału systemu na odizolowane od siebie przestrzenie procesów/partycje zwane kontenerami na wszystkich wspieranych platformach sprzętowych (maksymalnie 8192 partycji)

  • ZFS - system systemów plików umożliwiający uruchamianie oddzielnego systemu plików dla każdej aplikacji/użytkownika, zapisujący dane w trybie transakcyjnym i zabezpieczający ich spójność

  • DTrace - narzędzie do śledzenia pracy procesów opartena zmianie stanów, a nie wyłącznie na czasie

  • RBAC - znany z Trusted Solaris mechanizm kontroli przywilejów oparty na "rolach" - działa zarówno w stosunku do użytkowników, jak i procesów

  • Linux - bezpośrednia obsługa wywołań systemowych Linuxa x86 w jądrze Solaris 10 (plus dostępne już w Solaris 9 biblioteki systemowe i API Linuxa)

  • Poprawa wydajności obsługi stosu TCP/IP

  • Trzy platformy - ta sama funkcjonalność na wszystkich trzech obsługiwanych platformach sprzętowych

TOP 200