Home | Mirror | Search

2. Distributed File System(簇檔案系統)

我吧分散式檔案系統分為三類,聚合檔案系統,全局檔案系統,負載均衡檔案系統。

除了gfs其他檔案系統都是建立在本地檔案系統之上的網絡檔案系統。

几乎所有DFS都能通過fuse mount 到本地,但有些DFS mount 後性能不佳。

還有一個與分散式檔案系統密切相關的,就是塊設備,塊設備不是檔案系統,可以稱為裸設備。

2.1. 聚合檔案系統

以NFS, glusterfs 為代表,其特點是server獨立運行,Server與Server間沒有通信,然後訪問者將其聚合組織並規劃目錄,為client提供數據共享。

glusterfs 可以實現Mirror與Strip等更複雜的組合,但全由client完成,server之間沒有交互。

		

+-------------------------+        +-----------------------+
| Client                  |       /| Images Data           |
+-------------------------+      / +-----------------------+
| /mnt                    |     /  +-----------------------+     +--------------------+
| /mnt/images             |<----  /| Include Data          |     | Design by neo chen |
| /mnt/include            |<------ +-----------------------+     +--------------------+
| /mnt/lib                | ...    netkiller.github.com
| /mnt/data               | ...    +-----------------------+
| /mnt/data/backup        |<-------| Backup Data           |
+-------------------------+        +-----------------------+

		
		

2.2. 全局檔案系統

如 gfs,它可以提供server間檔案系統協商,同步元數據等等。常規檔案系統只能用於本地硬碟,如果兩個伺服器同時mount iscsi存儲,會出現A伺服器寫入後,B伺服器無法看到A剛剛寫入的數據,如果兩台同時寫入數據,會損壞檔案系統。

		

		    +--------------------------------+
		    | Server Load Balancing          |
		    +--------------------------------+
		                    |
		                    V
--------------------- 1Gbps Ethernet ---------------------
            |                                |
            |        netkiller.sf.net        |
            V                                V
+------------------------+        +-----------------------+
| Server Master          |        | Server Master / Slave |
+------------------------+        +-----------------------+
| /u01                   |        | /u01                  |     +--------------------+
| /u02                   |        | /u02                  |     | Design by neo chen |
| /u03                   |        | /u03                  |     +--------------------+
+------------------------+        +-----------------------+
          |   |                             |   |
          V   V                             V   V
--------------------- 10Gbps Ethernet ---------------------
                           |  |
                           V  V
              +----------------------------+
              | IP SAN - ISCSI target      |
              +----------------------------+
              | LUN0 | LUN1 | LUN2 | ...   |
              +----------------------------+

		
		

2.3. 負載均衡檔案系統

這種檔案系統通常至少有三部分組成,存儲節點,訪問節點,管理節點。不同的系統叫法不同,但其原理相同。

存儲節點,負責數據存儲,數據通過hash散列

訪問節點,用戶通過該節點訪問數據,做數據上傳下載。訪問方式分為點對點與三角方式

管理節點,服務數據Mirror,Strip等,元數據同步等等...

點到點系統只提供一個訪問入口,如:MooseFS

		
          +--------------------------------+
          | User                           |
          +--------------------------------+
          | mount ip_address => /mnt/test  |
          +--------------------------------+
                          |
                          V
------------------ 1Gbps Ethernet ---------------------
         |                                   |
         V                                   V
+-------------------------+       +----------------------+
| Manager Node            |       | Access node          |
+-------------------------+       +----------------------+
| Mirror | Strip |  ...   |       | Index                |
+-------------------------+       +----------------------+
		 |
		 V
--------------------- 1Gbps Ethernet ---------------------
         |                                     |
         |            netkiller.sf.net         |
         V                                     V
+---------------------+              +--------------------+
| Data Node           |              | Date Node          |
+---------------------+              +--------------------+
| 01 02 03 ...    10  |              | 01 02 03 ...    10 |     +--------------------+
| 0A 0B 0C ...    0F  |<-- Mirror -->| 0A 0B 0C ...    0F |     | Design by neo chen |
| FA FB FC ...    FF  |              | FA FB FC ...    FF |     +--------------------+
+---------------------+              +--------------------+

		
		
三角鏈路
		

          +--------------------------------+
          | Server Load Balancing          |
          +--------------------------------+
                          |
                          V
------------------ 1Gbps Ethernet ----------------------------------
         |                               |                  |
         V                               V                  V
+-------------------------+       +-------------+    +-------------+
| Manager Node            |       | Access Node |    | Access Node |
+-------------------------+       +-------------+    +-------------+
| Mirror | Strip |  ...   |       | Index       |    | Index       |
+-------------------------+       +-------------+    +-------------+
		 |
		 V
--------------------- 1Gbps Ethernet ---------------------
         |                                     |
         |            netkiller.sf.net         |
         V                                     V
+---------------------+              +--------------------+
| Data Node           |              | Date Node          |
+---------------------+              +--------------------+
| 01 02 03 ...    10  |              | 01 02 03 ...    10 |     +--------------------+
| 0A 0B 0C ...    0F  |<-- Mirror -->| 0A 0B 0C ...    0F |     | Design by neo chen |
| FA FB FC ...    FF  |              | FA FB FC ...    FF |     +--------------------+
+---------------------+              +--------------------+

		
		

這種檔案系統的特點是,當用戶訪問檔案系統時,首先訪問管理節點,管理節點會返回一個數據地址,用戶再從訪問節點的地址取得數據。

以MogileFS為代表

某些系統甚至直接使用反向代理或者WEB伺服器作為訪問節點。這種系統非常適合多媒體數據存儲。通過負載均衡可能實現橫向與縱向靈活擴展

2.4. 網絡塊設備

本地檔案系統是建立在塊設備之上的。使用塊設備,首先配置好塊設備,然後你就可以把它當成物理硬碟一樣對待,在塊設備上分區,格式化。

以DRBD,nbd-server為代表,網絡塊設備可以保證兩塊物理硬碟的數據同步,常用語HA集群

		

Linux Server A                   Linux Server B
----------------                 -----------------
File System                      File System
Block Device    <--------------> Block Device
		
		

更多細節參考 http://netkiller.github.com/storage/

comments powered by Disqus