14. Zdalny dost
14. Zdalny dost
ę
ę
p do danych
p do danych
Lesław Sieniawski © 2010
Dost
Dost
ę
ę
p do danych
p do danych
Dost
ę
p do danych:
Do no
ś
ników danych
(poziom fizyczny – dane
surowe) poprzez interfejsy:
wewn
ę
trzne
lokalne
zdalne (sieciowe)
– Do samych danych
(poziom logiczny):
•
Plików
•
Baz danych
Poziom fizyczny
– dane udost
ę
pniane blokami
Poziom logiczny
– dane udost
ę
pniane w postaci
zgodnej z typami danych lub ich strukturami, np.
char, string, integer, array [,] of real, record,
struct, file, database
(podane nazwy typów danych –
abstrakcyjne, niezwi
ą
zane z konkretnym j
ę
zykiem programowania)
Posta
Posta
ć
ć
danych
danych
sektor
sektor
sektor
sektor
Blok danych
Potrzebna dana
Obs
Obs
ł
ł
uga danych
uga danych
Poziom fizyczny
– Zawarto
ść
no
ś
nika danych musi by
ć
przetworzona przez
system operacyjny – system plików lub system bazodanowy
Poziom logiczny
– Zdalne pliki danych
•
Musz
ą
by
ć
udost
ę
pnione poprzez system operacyjny
•
Mog
ą
by
ć
bezpo
ś
rednio wykorzystywane przez aplikacje
– Zdalne bazy danych
•
Musz
ą
by
ć
przył
ą
czone do systemu
•
Mog
ą
by
ć
wykorzystywane przez aplikacje
Architektura klient
Architektura klient
-
-
serwer
serwer
Usługa
(ang. service) typowa czynno
ść
przetwarzania w
ś
rodowisku rozproszonym, wykonywana na jednej lub wielu
maszynach
Serwer
(ang. server) – oprogramowanie
ś
wiadcz
ą
ce usług
ę
dla
nieokre
ś
lonego wcze
ś
niej klienta, wykonywane na konkretnej
maszynie
Klient
– proces
żą
daj
ą
cy wykonania usługi za pomoc
ą
sekwencji
czynno
ś
ci nazywanych interfejsem klienta
śądanie usługi
Wynik
Klient
Serwer
Poj
ę
cia
klienta
i
serwera
nie dotycz
ą
sprz
ę
tu lecz wzajemnych relacji
Architektura klient
Architektura klient
-
-
serwer (2)
serwer (2)
Przykład
: system plików
dostarcza usługi plikowe:
– Tworzenia pliku,
– Usuwanie pliku,
– Zapis do pliku,
– Odczyt z pliku,
– Operacje na katalogach,
Lokalny system plików
utrzymuje dane na dysku(-ach) danej
maszyny
– Odwzorowanie
: sektor dysku-jednostka alokacji (blok)-identyfikator
pliku-nazwa pliku
przezroczyste dla u
ż
ytkownika (programu,
klienta)
Rozproszony system plików
na dyskach wielu niezale
ż
nych
maszyn
– Odwzorowanie
: sektor dysku-jednostka alokacji (blok)-
maszyna
-
identyfikator pliku-nazwa pliku
przezroczyste dla u
ż
ytkownika
(programu, klienta)
– Dodatkowy poziom odwzorowania
: wiele egzemplarzy danego pliku
Model przetwarzania
Model przetwarzania
Nośnik
Nośnik
Nośnik
System plików
System plików
SZBD
SZBD
Aplikacje
W
a
rs
tw
a
fi
z
y
c
z
n
a
W
a
rs
tw
a
l
o
g
ic
z
n
a
W
a
rs
tw
a
a
p
li
k
a
c
ji
Usługi
Lokalne
i zdalne
Przetwarzanie danych zdalnych
Przetwarzanie danych zdalnych
Sposób po
ś
redni
1.
Utworzenie lokalnej kopii pliku danych
2.
Przetwarzanie lokalnej kopii pliku danych
3.
Ewentualna aktualizacja zdalnego pliku danych
Program
Lokalna kopia pliku
Plik zdalny
Pobieranie kopii
[Aktualizacja]
Przetwarzanie danych
Przetwarzanie danych zdalnych (2)
Przetwarzanie danych zdalnych (2)
Sposób bezpo
ś
redni
1. Logiczne przył
ą
czenie (zamontowanie) zdalnego pliku danych
2. Przetwarzanie zdalnego pliku danych (bez tworzenia lokalnej
kopii)
3. Logiczne odł
ą
czenie (odmontowanie) pliku danych
Program
Plik zdalny
Przetwarz
anie dany
ch
Zdalne przesy
Zdalne przesy
ł
ł
anie plik
anie plik
ó
ó
w
w
File Transfer Protocol
(FTP)
– element sieciowego
systemu operacyjnego
Serwer FTP
(demon)
Klient FTP
Zdalne przesy
Zdalne przesy
ł
ł
anie plik
anie plik
ó
ó
w (2)
w (2)
FTP
korzysta z sieci TCP/IP
Tworzy 2 poł
ą
czenia
:
–
kontrolne
- inicjowane przez klienta (port
21
serwera):
identyfikator, hasło, polecenia, statusy
–
danych
– inicjowane przez serwer: pliki
Tryby pracy FTP
– Aktywny
: klient wysyła do serwera swój adres i dane
uwierzytelnienia, serwer inicjuje poł
ą
czenie dla danych na
porcie
20
– Pasywny
(komunikacja poprzez zapor
ę
sieciow
ą
): klient
wysyła do serwera swój adres i dane uwierzytelnienia oraz
inicjuje poł
ą
czenie dla danych na porcie
>1024
Zdalne przesy
Zdalne przesy
ł
ł
anie plik
anie plik
ó
ó
w (3)
w (3)
FTP umo
ż
liwia dost
ę
p
– Nieanonimowy
– logowanie do konta u
ż
ytkownika w danym
systemie, gdzie działa usługa FTP;
nazwa konta i hasło – ustalone indywidualnie.
Opcjonalne uwi
ę
zienie u
ż
ytkownika w jego katalogu
prywatnym (chroot)
– Anonimowy
– standardowa nazwa konta:
ftp
lub
anonymous
,
hasło – dowolne (zalecane: adres email).
Opcjonalne uwi
ę
zienie u
ż
ytkownika w katalogu publicznym
Niektóre polecenia FTP
:
– get, put (transmisja pojedynczych plików),
– mget, mput (transmisja wielu plików wg wzorca nazwy),
– cd, dir, pwd, lcd (polecenia dotycz
ą
ce katalogów)
Niechroniona transmisja
plików oraz informacji kontrolnej
Nie myli
ć
protokołu FTP z poleceniem lub aplikacj
ą
klienta
Zdalne przesy
Zdalne przesy
ł
ł
anie plik
anie plik
ó
ó
w (4)
w (4)
Protokół SCP
(Secure Copy)
– Działa przez tunelowanie usługi RPC przez protokół SSH (port
22), zapewniaj
ą
cy uwierzytelnianie i szyfrowanie
Nie myli
ć
protokołu SCP
z poleceniem lub aplikacj
ą
o tej samej nazwie
Zdalne przesy
Zdalne przesy
ł
ł
anie plik
anie plik
ó
ó
w (5)
w (5)
Protokół SFTP
(Secure FTP lub SSH FTP)
– Korzysta z poł
ą
czenia SSH-2
– Umo
ż
liwia:
•
dost
ę
p do plików
•
przesyłanie plików
•
zarz
ą
dzanie plikami (wznawianie przerwanych transmisji,
listowanie katalogów, zdalne usuwanie plików)
– Bardziej funkcjonalny od SCP
Nie myli
ć
protokołu SFTP
z poleceniem lub aplikacj
ą
o tej samej nazwie
Udost
Udost
ę
ę
pnianie plik
pnianie plik
ó
ó
w
w
System Message Block
(SMB) lub
Common Internet
File System
(CIFS) – sieciowy protokół aplikacyjny :
– Architektura klient-serwer (poj
ę
cia wzgl
ę
dne)
– Przeznaczenie
•
Współdzielenie plików
•
Współdzielenie drukarek
•
Komunikacja mi
ę
dzyprocesowa
– Stosowany w MS Windows (jako
Microsoft Windows Network
)
– Pocz
ą
tkowo SMB działał w oparciu o NetBIOS/NetBEUI
– Od wersji MS Windows 2000, SMB opiera si
ę
o TCP
– Popularna implementacja dla Linuxa -
Samba
Zdalne wywo
Zdalne wywo
ł
ł
ywanie procedur
ywanie procedur
Remote Procedure Call
(RPC; 1976)
– Pierwsza popularna implementacja – Sun RPC (obecnie ONC RPC),
podstawa dla NFS
Działanie
(analogia wywołania funkcji):
– Architektura klient-serwer
– Klient wysyła
do znanego zdalnego serwera
żą
danie wykonania
okre
ś
lonej procedury i podaje parametry wywołania; zostaje
zablokowany w oczekiwaniu na odpowied
ź
– Serwer wykonuje
żą
dan
ą
procedur
ę
i odsyła odpowied
ź
(lub informacj
ę
o bł
ę
dzie)
– Klient wznawia
przetwarzanie
Uwagi
:
– Klient nie okre
ś
la i nie zna szczegółów dotycz
ą
cych sposobu
realizacji
żą
dania
– Ze wzgl
ę
du na ró
ż
norodno
ść
klientów, do standaryzacji wywoła
ń
RPC wprowadzono Interface Description Language (IDL)
– Istniej
ą
generatory kodu dla interfejsu wywoła
ń
(np. RPCGEN)
Zdalne wywo
Zdalne wywo
ł
ł
ywanie procedur (2)
ywanie procedur (2)
Diagram sekwencji dla RPC
Sieciowy system plik
Sieciowy system plik
ó
ó
w
w
Network File System
(NFS; Sun Microsystems, 1984)
Krótka historia protokołu:
– Wersja 1
(1984) - eksperymentalna
– Wersja 2
(1989) - protokół bezstanowy, oparty w cało
ś
ci
o UDP, limit wielko
ś
ci pliku: 2 GB
– Wersja 3
(1995) - zniesienie limitu 2 GB (licznik 64-bitowy),
asynchroniczny zapis na serwerze, przej
ś
cie na TCP
realno
ść
transportu plików poprzez WAN
– Wersja 4
(Internet Engineering Task Force; 2000, 2003) - poprawa
wydajno
ś
ci, mocne zabezpieczenia, protokół stanowy:
•
wymaga TCP
•
nasłuchuje na porcie 2049
•
nie korzysta z portmappera, rpc.mountd, rpc.lockd, rpc.statd
•
obsługuje listy kontroli dost
ę
pu (ACL)
•
Wersja 4 modyfikacja 1
– m.in. obsługa Parallel NFS (pNFS)
Sieciowy system plik
Sieciowy system plik
ó
ó
w (2)
w (2)
Zastosowanie NFS
- głównie systemy UNIX, Linux, BSD
Implementacja NFS
(na przykładzie s.o. Linux:
RedHat Enterprise Linux 5
/
CentOS 5
)
– Dost
ę
pne wersje NFSv2, NFSv3, NFSv4
– Domy
ś
lna NFSv3
– Wszystkie wersje domy
ś
lnie korzystaj
ą
z TCP; UDP jest zachowane
dla wstecznej zgodno
ś
ci
Sieciowy system plik
Sieciowy system plik
ó
ó
w (3)
w (3)
Usługi NFS
realizuj
ą
nast
ę
puj
ą
ce procesy RPC serwera:
– rpc.mountd
– odbiera
żą
danie klienta montowania udziału
dyskowego i sprawdza, czy
żą
dany zasób jest eksportowany;
proces uruchamiany jest automatycznie przez usług
ę
nfs
i nie
wymaga konfigurowania (nieu
ż
ywany z NFSv4)
– rpc.nfsd
– pozwala na wskazanie wersji i protokołu, który jest
oferowany przez serwer (odpowiada usłudze
nfs
)
– rpc.lockd
– umo
ż
liwia klientom blokowanie plików na
serwerze; niezb
ę
dny dla realizacji tej funkcji (odpowiada
usłudze
nfslock;
nieu
ż
ywany z NFSv4)
– C.d.n.
Sieciowy system plik
Sieciowy system plik
ó
ó
w (4)
w (4)
C.d.
– rpc.statd
– implementuje protokół RPC Network Status Monitor
(NSM) informuj
ą
cy klientów o restarcie serwera NFS bez jego
uprzedniego zamkni
ę
cia; proces uruchamiany jest automatycznie
przez usług
ę
nfslock
i nie wymaga konfigurowania (nieu
ż
ywany
z NFSv4)
– rpc.quotad
– proces dostarcza zdalnym klientom informacji
o wykorzystanym limicie pami
ę
ci dyskowej (ang. quota);
uruchamiany jest automatycznie przez usług
ę
nfs
i nie wymaga
konfigurowania
– rpc.idmapd
– proces zapewnia zwrotne wywołania (ang. upcall)
klienta i serwera NFSv4, które odwzorowuj
ą
nazwy u
ż
ywane
podczas transmisji (w postaci u
ż
ytkownik@domena) na lokalne
UID oraz GID; posiada własny plik konfiguracyjny. Wymagany
przez NFSv4.
Sieciowy system plik
Sieciowy system plik
ó
ó
w (5)
w (5)
Zestawienie procedur RPC realizuj
ą
cych usługi NFS
tak
/etc/
idmapd.conf
idmap
rpc.idmapd
tak
rpc.nfsd
NFS quota
rpc.rquotad
nie
rpc.lockd
NFS NSM
rpc.statd
nie
nfslock
rpc.lockd
tak
/etc/exports
nfs
rpc.nfsd
nie
rpc.nfsd
NFS mount
rpc.mountd
Obecny
w NFSv4
Plik
konfigurac.
Proces-
przodek
Realizowana
usługa
Nazwa
nie
portmapper
portmap
Sieciowy system plik
Sieciowy system plik
ó
ó
w (6)
w (6)
Dost
ę
p klienta do usługi NFS
jest chroniony przez
TCP wrappers:
– plik
/etc/hosts.allow
#
# hosts.allow
This file describes the names of the hosts which are
#
allowed to use the local INET services, as decided
#
by the '/usr/sbin/tcpd' server.
#
portmap: 172.30.205.200/255.255.255.255: allow
lockd:
172.30.205.200/255.255.255.255: allow
mountd:
172.30.205.200/255.255.255.255: allow
rquotad: 172.30.205.200/255.255.255.255: allow
statd: 172.30.205.200/255.255.255.255: allow
Plik /etc/hosts.allow
Zezwolenie na dost
ę
p z komputera o IP=172.30.205.200; plik przegl
ą
dany jako
pierwszy
Sieciowy system plik
Sieciowy system plik
ó
ó
w (7)
w (7)
C.d.
– plik
/etc/hosts.deny
## hosts.deny
This file describes the names of the hosts which are
#
*not* allowed to use the local INET services, as decided
#
by the '/usr/sbin/tcpd' server.
## The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
portmap:ALL
lockd:ALL
mountd:ALL
rquoatd:ALL
statd:ALL
Plik /etc/hosts.deny
Zakaz dost
ę
pu ze wszystkich komputerów
; plik przegl
ą
dany jako
drugi
Sieciowy system plik
Sieciowy system plik
ó
ó
w (8)
w (8)
Konfiguracja eksportu
-
plik
/etc/exports
/var/exports
172.30.205.200(ro,sync,nohide)\
172.30.205.201(ro,sync,nohide)\
172.30.205.202(ro,sync,nohide)\
172.30.205.203(ro,sync,nohide)\
172.30.205.204(ro,sync,nohide)\
172.30.205.205(ro,sync,nohide)
Sieciowy system plik
Sieciowy system plik
ó
ó
w (9)
w (9)
Jednorazowe montowanie zdalnego zasobu po stronie
klienta
, np.
mount –t nfs 172.30.205.205:/var/exports /mnt/exports
Montowanie zdalnego zasobu podczas startu systemu
– Plik
/etc/fstab
LABEL=/ / ext3 defaults
1 1
LABEL=/var
/var
ext3 defaults
1 2
tmpfs
/dev/shm
tmpfs
defaults
0 0
devpts
/dev/pts
devpts
gid=5,mode=620 0 0
sysfs
/sys
sysfs
defaults
0 0
proc /proc proc
defaults
0 0
LABEL=SWAP-sda2 swap
swap
defaults
0 0
172.30.205.205:/var/exports
/mnt/exports
nfs
ro,rsize=8192,wsize=8192 0 0
Inne sieciowe systemy plik
Inne sieciowe systemy plik
ó
ó
w
w
Alternatywne protokoły
:
– Server Message Block
(SMB alias CIFS) dla MS Windows
– NetWare Core Protocol
(NCP) - MS Windows
– Apple Filing Protocol
(AFP) - komputery firmy Apple
– Andrew File System
(AFS; IBM) -
– Coda File System
(CFS) -
Rozproszone systemy plik
Rozproszone systemy plik
ó
ó
w
w
Network Block Device
(NBD; sieciowe urz
ą
dzenie
blokowe)
– Usługa realizowana w architekturze klient-serwer
– Zdalne udost
ę
pnianie pliku jako urz
ą
dzenia blokowego (np.
dysku) w systemie Linux
– Sieciowe urz
ą
dzenie blokowe mo
ż
e słu
ż
y
ć
do utworzenia
systemu plikowego, a tak
ż
e by
ć
elementem macierzy RAID
Rozproszone systemy plik
Rozproszone systemy plik
ó
ó
w (2)
w (2)
[
ź
ródło: http://www.linuxjournal.com/article/3778]
•
•
Por
Por
ó
ó
wnanie NFS i NBD
wnanie NFS i NBD
Rozproszone systemy plik
Rozproszone systemy plik
ó
ó
w (3)
w (3)
Global File System
(GFS; ang. globalny system plików) –
system plików dla klastrów wysokiej dost
ę
pno
ś
ci
– No
ś
niki danych poł
ą
czone za pomoc
ą
interfejsów lub protokołów
(np. FC, iSCSI, NBD) – współdzielone pomi
ę
dzy w
ę
złami klastra
– Mechanizm blokady dost
ę
pu, dla zapewnienia spójno
ś
ci danych
– Zmiany stanu systemu plików widoczne natychmiast we
wszystkich maszynach klastra
– Dobra skalowalno
ść
– Wysoka dost
ę
pno
ść
dzi
ę
ki pracy transakcyjnej (ang. journalling)
(podobnie jak
ext3)
– Kronika zmian odr
ę
bna dla ka
ż
dego w
ę
zła klastra
– Obecnie kod otwarty – licencja GNU GPL
– GFS2 wł
ą
czony do j
ą
dra Linuxa 2.6.19