[Distsys] post2 495511208

分散式檔案系統須讓使用感覺不到檔案分散儲存,如同使用Local File System一樣(無法實現的目標)

Network File System:
1.NFS即使無法做到像LFS一樣,該做到何種程度有其標準(Both local and network)
2.caching (重要):給予暫存、但不管理,所以可能會遺失或是不一致。好處是將遠方的檔案拉進來
3.Remore interface:跟Local interface是不是一樣,用到網路上檔案系統的access,如寫程式或是下指令,定義其標準。
4.Security requires special condidereation

NFS case:Sun Network File System(變成網路標準)、The Andrew File System(理論上很重要)

Failure model:(第二章)定義出損壞的嚴重性等等(指考慮電腦與網路損壞)

Storage system:分散式物件以processing為主,儲存時以檔案

Persistent object store:在手機上很重要

Cache 跟 replicas不太一樣,cache中不一定會暫存一整份(容量有限)

NFS是啥:
1.Persistent stored data sets(資料持續保存)
2.Hierachic Name space:基本上所有的process皆可見
3.a.檔案API可以access跟update operations
  b.有Sequential access model與random access
4.容許data分享(with access contol)
5.Concurrent access:(CHMOD)
  - certainly for read-only access
  - what about updates?(一起更新(寫入)時歸誰?)
6.Mountablefile store:檔案系統是不是Mountable,可不可以掛在另一個分散式系統之下
 
NFS演變成Database中最著名的:MSQL

Timestamp很重要,使用者做了啥事都必須要留下記錄 → 必須在記錄時統一與一制所有使用者的時間

一個file可以有兩個以上的link

File System需求:
1.    Transparency:透明度 – 檔案擺在哪裡都沒關係,使用者都不在乎,皆可以使用
2.    Concurrency:大家一起write access時怎麼lock
3.    Replication:NFS維護數個複製 – 好處:效能、tolerance  壞處:一致性、需要多空間存放
4.    Heterogeneity:
5.    Fault tolerance:容錯 - at-most-once、idempotent→at-least-once
6.    Consistency:一致性
7.    Security:安全性
8.    Efficiency:效率性 - 希望能跟放在local端一樣。

Sun NFS:1980s local network的(open)標準。
-    Remote file透過NFS protocol
-    Virtual file system:使用者用的檔案有些是存放在local、有些在server上

因為Stateless Server(因為它不像TCP有開連線,access完後就不管(不維持連線,以避免維持大量連線會負荷過重))所以每個request都必須認證。

每個Client request都有UserID跟groupID。

因為沒有做加密,Server是暴露在被攻擊的環境之下。

Kerberos繼承了NFS,提供部分加密解密

Mount server:
1.    mount(remote host, remote 目錄,local目錄)
2.    server必須維護table(誰把東西放進來)
3.    client也必須維護table(哪些檔案放在server上)

NFS optimization(最佳化):server caching
1.    可以將檔案放在靠近server的caching,抓過一次後下次就不用再去抓一次
2.    Updating the dist:
    a. write-through – 當被寫入的時候就直接寫到源頭,保持一致性。
    b. delay commit – 不會立刻write-through,而是會有個commit() call。要等到commit()後才會真的寫入。
    a.的壞處:如果寫入頻繁會一直建立連線,降低速度。
    b.的壞處:不一致性

NFS optimization(最佳化):client caching
1.    server caching沒辦法減少RPC traffic,在client caching可以。
2.    加上timestamp的check

Other NFS optimization:
Sun RPC run over UDP by default(可以用TCP)
reads()跟writes()可以是任何size
動態的設定(t interval)檔案新鮮度以減少使用gettattr() call來更新Tm
file attribute(包括Tm)會跟request一起回傳

NFS transparencies:
1.    Access:最好,用傳統的Unix API指令(both local and remote),使用者無法直接看見
2.    Location:不保證,管理員必須Mount好。
3.    Concurrency:limit,read-write file sharing裡consistency會有問題
4.    Replication:Stateless設計無法完全達到(原因在ch14)
5.    Failure:limit but effective
6.    Mobility:Hardly achieved
7.    Performance:good - performance
8.    Scaling:good

Andrew File System:
Server – vice     local – Venus

Serverless:P2P

ID可以轉變成address或是object,是給系統看的;Name是給人看的

Name的需求:
1.    Simple
2.    Infinite
3.    Structured – subname
-Group related name
4.    Re-structuring of name tree
5.    Trust

 

URI:
1.    URL(Uniform resource locator):resource的type固定,不能在domain之間移動(http、ftp等等)
2.    URN(Uniform resource name):需要有URN的lookup service。表示法: urn:<nameSpace>:<name-with-namespace>
URN是Name space;URL是Name Service

DNS:
1.    很快的解決domain name→IP address:因為大量使用caching
2.    有Replication
3.    主要機制 – partitioned database
           -caching

DNS:
1.    HostName→IP address
2.    Host aliasing
3.    Mail server aliasing
4.    Load distribution

為何DNS不centralize?為了避免:
1.    Single point of failure(壞的就大家一起掛掉)
2.    Traffic volume
3.    Distant centralized database
4.    maintenance

DNS protocol:query and reply message

Msg header(圖看一下)
1.    Identification:16 bits for query , reply to query users same
2.    Flag
- query or reply
- recursion desired
- recursion available
- reply is authoritative

ARP:有caching

<IP address; MAC address; TTL>

ARP in same LAN(network):
1.    用Broadcast 呼叫
2.    回應用Unicast
3.    Caching把回傳的MAC address save起來,直到下次timeout後再重找一次
4.    ARP不需要有server,ARP是plug-and-play

Routing to another LAN
1.    Two ARP table in Router, one for each IP network
2.    Router是network layer,所以知道IP可以去取得MAC address

Directory service:X.500(標準)、LDAP(FJU正在用)

目錄跟discovery不同。

Spontaneous network:discovery。

Jini:是Java中的一個機制,有discovery行為

Directory service:bindings between names and attributes

X.500(標準)、LDAP(FJU正在用):有Tree的概念在裡面

LDAP:
1.    access X.500 over TCP/IP
2.    Microsoft’s Active Directory Service provide an LDAP interface