乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MFS分布式文件系統(tǒng)

       夜貓速讀 2022-06-17 發(fā)布于湖北

      一、分布式文件系統(tǒng):背景:計算機通過文件系統(tǒng)管理、存儲數(shù)據(jù),而信息爆炸時代中人們可以獲取的數(shù)據(jù)成指數(shù)倍的增長,單純通過增加硬盤個數(shù)來擴展計算機文件系統(tǒng)的存儲容量的方式,在容量大小、容量增長速度、數(shù)據(jù)備份、數(shù)據(jù)安全等方面的表現(xiàn)都差強人意。分布式文件系統(tǒng)可以有效解決數(shù)據(jù)的存儲和管理難題,人們在使用分布式文件系統(tǒng)時,無需關心數(shù)據(jù)是存儲在哪個節(jié)點上、或者是從哪個節(jié)點從獲取的,只需要像使用本地文件系統(tǒng)一樣管理和存儲文件系統(tǒng)中的數(shù)據(jù)。

      概述:分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡與節(jié)點相連。分布式文件系統(tǒng)的設計基于客戶機/服務器模式。一個典型的網(wǎng)絡可能包括多個供多用戶訪問的服務器;

        目前常見的分布式文件系統(tǒng)有很多種,比如 HadoopMoosefs、HDFS、FastDFS、Lustre、TFSGFS 等等一系列;

       

      二、MFS 分布式文件系統(tǒng):

      概述:MooseFS(即 Moose File System)是一個具有容錯性的網(wǎng)絡分布式文件系統(tǒng),它將數(shù)據(jù)分散存放在多個物理服務器或單獨磁盤或分區(qū)上,確保一份數(shù)據(jù)有多個備份副本,對于訪問 MFS 的客戶端或者用戶來說,整個分布式網(wǎng)絡文件系統(tǒng)集群看起來就像一個資源一樣,也就是說呈現(xiàn)給用戶的是一個統(tǒng)一的資源。

      MFS 支持 FUSE(用戶空間文件系統(tǒng) Filesystem in Userspace),客戶端掛載后可以作為一個普通的 Unix 文件系統(tǒng)使用 MooseFS;優(yōu)勢:

      1.部署簡單,輕量、易配置、易維護;

      2.易于擴展,支持在線擴容,不影響業(yè)務,體系架構可伸縮性極強;

      3.通用文件系統(tǒng),不需要修改上層應用就可以使用;

      4.可設置文件備份的副本數(shù)量,一般建議 3 份,未來硬盤容量也要是存儲單份的容量的三倍;劣勢:

      1.master 目前是單點(雖然會把數(shù)據(jù)信息同步到備份服務器,但是恢復需要時間,因此,會影響上線,針對這個問題;可以通過 DRBD+Keeaplived 方案或者 DRBD+Inotify 方案解決);

      2.master 服務器對主機的內(nèi)存要求略高;

      3.默認 metalogger 復制元數(shù)據(jù)時間較長;

      三、MFS 分布式文件系統(tǒng)存儲架構:角色:

       

      MFS 存取數(shù)據(jù)的過程:

       

      --------------------------------------------------MFS 存取數(shù)據(jù)詳解------------------------------------------------------

      ?MFS 讀取數(shù)據(jù)步驟:

      1)客戶端向元數(shù)據(jù)服務器發(fā)出請求;

      2)元數(shù)據(jù)服務器把所需數(shù)據(jù)存放的位置(Chunk Server IP 地址及 Chunk 編號)告知客戶端;

      3)客戶端向已知 Chunk Server 請求發(fā)送數(shù)據(jù);

      4)客戶端向 chunk server 請求取得所需數(shù)據(jù);

      ?MFS 寫入數(shù)據(jù)步驟:

      1)客戶端向元數(shù)據(jù)服務器發(fā)送寫入請求;

      2)元數(shù)據(jù)服務器與 Chunk Server 進行交互如下;

      1)元數(shù)據(jù)服務器指示在某些 Chunk Server 創(chuàng)建分塊 Chunks;

      2)Chunk Server 告知元數(shù)據(jù)服務器,步驟(1)的操作成功;

      3)元數(shù)據(jù)服務器告知客戶端,你可以在哪個 Chunk Server 的哪個 Chunks 寫入數(shù)據(jù);

      4)向指定的 Chunk Server 寫入數(shù)據(jù);

      5)與其他 Chunk Server 進行數(shù)據(jù)同步,同步的服務器依據(jù)設定的副本數(shù)而定,副本為 2,則需同步一個 ChunkServer;

      6)Chunk Sever 之間同步成功;

      7)Chunk Server 告知客戶端數(shù)據(jù)寫入成功;

      8)客戶端告知元數(shù)據(jù)服務器本次寫入完畢;

      9)元數(shù)據(jù)服務器將數(shù)據(jù)存放記錄寫入到本地日志;

      10)元數(shù)據(jù)服務器將本地日志拷貝到 logger 服務器;

      ?MFS 的刪除文件過程:

      1)客戶端有刪除操作時,首先向 Master 發(fā)送刪除信息;

      2)Master 定位到相應元數(shù)據(jù)信息進行刪除,并將 chunk server 上塊的刪除操作加入隊列異步清理;

      3)響應客戶端刪除成功的信號;

      ?MFS 修改文件內(nèi)容的過程:

      1)客戶端有修改文件內(nèi)容時,首先向 Master 發(fā)送操作信息;

      2)Master 申請新的塊給.swp 文件;

      3)客戶端關閉文件后,會向 Master 發(fā)送關閉信息;

      4)Master 會檢測內(nèi)容是否有更新,若有,則申請新的塊存放更改后的文件,刪除原有塊和.swp 文件塊;

      5)若無,則直接刪除.swp 文件塊;

      ?MFS 重命名文件的過程:

      1)客戶端重命名文件時,會向 Master 發(fā)送操作信息;

      2)Master 直接修改元數(shù)據(jù)信息中的文件名;返回重命名完成信息;

      ?MFS 遍歷文件的過程:

      1)遍歷文件不需要訪問 chunk server,當有客戶端遍歷請求時,向 Master 發(fā)送操作信息;

      2)Master 返回相應元數(shù)據(jù)信息;

      3)客戶端接收到信息后顯示;

      ?總結注意:

      1)Master 記錄著管理信息,比如:文件路徑|大小|存儲的位置(ip,port,chunkid)|份數(shù)|時間等,元數(shù)據(jù)信息存在于內(nèi)存中,會定期寫入 metadata.mfs.back 文件中,定期同步到 metalogger,操作實時寫入 changelog.*.mfs,實時同步到 metalogger 中。master 啟動將 metadata.mfs 載入內(nèi)存,重命名為 metadata.mfs.back 文件。

      2)文件以 chunk 大小存儲,每 chunk 最大為 64M,小于 64M 的,該 chunk 的大小即為該文件大?。炞C實際 chunk 文件略大于實際文件),超過 64M 的文件將被切分,以每一份(chunk)的大小不超過 64M 為原則;塊的生成遵循規(guī)則:目錄循環(huán)寫入(00-FF 256 個目錄循環(huán),step 2)、chunk 文件遞增生成、大文件切分目錄連續(xù)。

      3)Chunkserver 上的剩余存儲空間要大于 1GBReference Guide 有提到),新的數(shù)據(jù)才會被允許寫入,否則,你會看到 No space left on device 的提示,實際中,測試發(fā)現(xiàn)當磁盤使用率達到 95%左右的時候,就已經(jīng)不可以寫入了,當時可用空間為 1.9GB。

      4)文件可以有多份 copy,當 goal 1 時,文件會被隨機存到一臺 chunkserver 上,當 goal 的數(shù)大于 1 時,copy 會由 master 調(diào)度保存到不同的 chunkserver 上,goal 的大小不要超過 chunkserver 的數(shù)量,否則多出的 copy,不會有 chunkserver 去存。

      四、案例:搭建 MFS 分布式存儲:案例拓撲:

       案例環(huán)境:

      系統(tǒng)類型

      IP 地址

      主機名

      所需軟件

      Centos 7.4 1708 64bit

      192.168.100.101

      master.linuxfan.cn

      mfs-1.6.27-5.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.102

      log.linuxfan.cn

      mfs-1.6.27-5.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.103

      chunk1.linuxfan.cn

      mfs-1.6.27-5.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.104

      chunk2.linuxfan.cn

      mfs-1.6.27-5.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.105

      chunk3.linuxfan.cn

      mfs-1.6.27-5.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.106

      client.linuxfan.cn

      fuse-2.9.2.tar.gz mfs-1.6.27-5.tar.gz

      案例步驟:

      ?安裝并配置 master 元數(shù)據(jù)服務器;

      ?安裝并配置 log 日志服務器;

      ?安裝并配置 chunk 節(jié)點存儲服務器(在此三臺 chunk 節(jié)點服務器配置相同,只列舉 chunk1 節(jié)點的配置);

      ?安裝并配置客戶端節(jié)點;

      ?配置 master 節(jié)點開啟 MFS 監(jiān)控;

      ?客戶端測試訪問監(jiān)控頁面;

      ?客戶端測試寫入數(shù)據(jù);

      ?驗證 chunk 節(jié)點數(shù)據(jù)分配情況及 web 監(jiān)控頁面;

      ?配置 master 節(jié)點修改數(shù)據(jù)的復制份數(shù);

      ?客戶端再次寫入數(shù)據(jù)測試;

      ?驗證 chunk 節(jié)點數(shù)據(jù)分配情況及 web 監(jiān)控頁面;

      ?安裝并配置 master 元數(shù)據(jù)服務器;

      [root@master ~]# yum -y install zlib-devel

      [root@master ~]# useradd -s /sbin/nologin mfs [root@master ~]# ls mfs-1.6.27-5.tar.gz  mfs-1.6.27-5.tar.gz

      [root@master ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src

      [root@master ~]# cd /usr/src/mfs-1.6.27       

      [root@master mfs-1.6.27        ]#        ./configure        --prefix=/usr/local/mfs        --with-default-user=mfs

      --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

      [root@master mfs-1.6.27        ]# make &&make install

      [root@master mfs-1.6.27        ]# cd

      [root@master ~]# cd /usr/local/mfs/etc/mfs/

      [root@master mfs]# ls mfsexports.cfg.dist  mfsmaster.cfg.dist  mfsmetalogger.cfg.dist  mfstopology.cfg.dist

      [root@master mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg       


      ##復制主配置文件

      [root@master mfs]# cp mfsexports.cfg.dist mfsexports.cfg 


      ##復制被掛載目錄及權限配置文件

      [root@master mfs]# cp mfstopology.cfg.dist mfstopology.cfg

      [root@master mfs]# cd /usr/local/mfs/var/mfs/

      [root@master mfs]# ls metadata.mfs.empty


      ##復制 ip 網(wǎng)絡的位置配置文件

      [root@master mfs]# cp metadata.mfs.empty metadata.mfs


      ##復制日志記錄的配置文件

      [root@master mfs]# /usr/local/mfs/sbin/mfsmaster start       


      ##關閉使用選項-s

      [root@master mfs]# netstat -utpln |grep mfs tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      5769/mfsmaster       tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      5769/mfsmaster       tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      5769/mfsmaster [root@master mfs]# cd                      

      ? 安裝并配置 log 日志服務器;

      [root@log ~]# yum -y install zlib-devel                      

      [root@log ~]# useradd -s /sbin/nologin mfs [root@log ~]# ls mfs-1.6.27-5.tar.gz  mfs-1.6.27-5.tar.gz

      [root@log ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src/

      [root@log ~]# cd /usr/src/mfs-1.6.27

      [root@log mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

      --disable-mfschunkserver --disable-mfsmount

      [root@log mfs-1.6.27]# make &&make install

      [root@log mfs-1.6.27]# cd

      [root@log ~]# cd /usr/local/mfs/etc/mfs/

      [root@log mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg                             ##復制日志配置文件

      [root@log mfs]# sed -i '/mfsmaster/a MASTER_HOST = 192.168.100.101' mfsmetalogger.cfg 

      [root@log mfs]# /usr/local/mfs/sbin/mfsmetalogger start

      [root@log mfs]# ps aux |grep mfs |grep -v grep mfs       5766  0.1  0.1  11824   832 ?        S<   05:42   0:00 /usr/local/mfs/sbin/mfsmetalogger start

      [root@log mfs]# cd

      ? 安裝并配置 chunk 節(jié)點存儲服務器(在此三臺 chunk 節(jié)點服務器配置相同,只列舉 chunk1 節(jié)點的配置);

      [root@chunk1 ~]# yum -y install zlib-devel

      [root@chunk1 ~]# useradd -s /sbin/nologin mfs [root@chunk1 ~]# ls mfs-1.6.27-5.tar.gz  mfs-1.6.27-5.tar.gz

      [root@chunk1 ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src/

      [root@chunk1 ~]# cd /usr/src/mfs-1.6.27

      [root@chunk1 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount

      [root@chunk1 mfs-1.6.27]# make &&make install

      [root@chunk1 mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/

      [root@chunk1 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg                ##復制主配置文件

      [root@chunk1 mfs]# cp mfshdd.cfg.dist mfshdd.cfg                                           ##復制掛載信息的配置文件

      [root@chunk1 mfs]# sed -i '/BIND_HOST/a MASTER_HOST = 192.168.100.101' mfschunkserver.cfg

      [root@chunk1 mfs]# echo "/data" >>mfshdd.cfg                 

      [root@chunk1 mfs]# mkdir /data

      [root@chunk1 mfs]# chown -R mfs:mfs /data/       

      [root@chunk1 mfs]# /usr/local/mfs/sbin/mfschunkserver start                 

      [root@chunk1 mfs]# ps aux |grep mfs |grep -v grep

      mfs       5528  0.3  0.5 171640  2560 ?        S<l </l05:44   0:00 /usr/local/mfs/sbin/mfschunkserver start        

      [root@chunk1 mfs]# cd

      ? 安裝并配置客戶端節(jié)點;

      [root@client ~]# yum -y install zlib-devel       

      [root@client ~]# ls fuse-2.9.2.tar.gz  mfs-1.6.27-5.tar.gz       

      [root@client ~]# tar zxvf fuse-2.9.2.tar.gz -C /usr/src                                    ##編譯安裝 fuse 文件系統(tǒng)

      [root@client ~]# cd /usr/src/fuse-2.9.2/

      [root@client fuse-2.9.2]# ./configure &&make &&make install

      [root@client fuse-2.9.2]# cd

      [root@client ~]# echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >>/etc/profile

      [root@client ~]# source /etc/profile              

      [root@client ~]# useradd -s /sbin/nologin mfs

      [root@client ~]# tar zxvf mfs-1.6.27-5.tar.gz -C /usr/src/

      [root@client ~]# cd /usr/src/mfs-1.6.27/

      [root@client mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

      --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount

      [root@client mfs-1.6.27]# make &&make install

      [root@client mfs-1.6.27]# cd

      [root@client ~]# echo "export PATH=/usr/local/mfs/bin:$PATH" >>/etc/profile        

      [root@client ~]# source /etc/profile              

      [root@client ~]# modprobe fuse

      [root@client ~]# lsmod |grep fuse fuse                   91874  1

      [root@client ~]# mkdir /mnt/mfs

      [root@client ~]# mfsmount /mnt/mfs -H 192.168.100.101 mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root [root@client ~]# df -hT |grep mfs

      192.168.100.101:9421        fuse.mfs   50G     0   50G    0% /mnt/mfs

      ?配置 master 節(jié)點開啟 MFS 監(jiān)控;

      [root@master ~]# /usr/local/mfs/sbin/mfscgiserv   ##啟動 mfscgiserv 是用 python 編寫的 web 服務,監(jiān)聽端口 9425

      lockfile created and locked starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs/share/mfscgi)

      [root@master ~]# netstat -utpln |grep 9425 tcp        0      0 0.0.0.0:9425            0.0.0.0:*               LISTEN      5779/python  

      ?客戶端測試訪問監(jiān)控頁面;

      http://192.168.100.101:9425

       

      ?客戶端測試寫入數(shù)據(jù);

      [root@client ~]# df -hT |grep mfs

      192.168.100.101:9421        fuse.mfs   50G     0   50G    0% /mnt/mfs

      [root@client ~]# dd if=/dev/zero of=/mnt/mfs/1.file bs=1G count=1

      記錄了 1+0 的讀入記錄了 1+0 的寫出

      1073741824 字節(jié)(1.1 GB)已復制,20.7523 秒,51.7 MB/

      [root@client ~]# du -sh /mnt/mfs/1.file 

      1.0G /mnt/mfs/1.file

      [root@client ~]# df -hT |grep mfs

      192.168.100.101:9421        fuse.mfs   49G  1.1G   48G    3% /mnt/mfs

      ?驗證 chunk 節(jié)點數(shù)據(jù)分配情況及 web 監(jiān)控頁面;

      ?配置 master 節(jié)點修改數(shù)據(jù)的復制份數(shù);

      a.默認每個 chunk server 中會占用一定的空間:

      b.MFS 默認存放文件的份數(shù)為 1,如若存放 1G 的文件,三個 chunk 節(jié)點會將 1G 的文件分割存儲(分布式存儲); c.如若在后續(xù)將默認的 1 份改成了 2 份,那么包括以前存在的文件和改后存放的文件,都會被 chunk 節(jié)點所同步成兩份,并且將兩份文件的大小,分布存儲在多個 chunk 節(jié)點中;

       

      ?客戶端再次寫入數(shù)據(jù)測試;

       

      ?驗證 chunk 節(jié)點數(shù)據(jù)分配情況及 web 監(jiān)控頁面;

      注:MFS 集群的啟動與停止:

      MFS 的啟動順序:master 元數(shù)據(jù)服務器-->chunkserver 存儲服務器-->metalogger 元數(shù)據(jù)日志服務器-->client 客戶端

      MFS 停止的順序:client(umount)客戶端-->chunkserver(-s)存儲服務器-->metalogger(-s)元數(shù)據(jù)日志服務器 -->master(-s)元數(shù)據(jù)服務器

        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多