压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  一、高級(jí)功能

  1、副本

  副本,在MFS中也被稱為目標(biāo)(Goal),它是指文件被復(fù)制的份數(shù),設(shè)定目標(biāo)值后可以通過(guò)mfsgetgoal命令來(lái)證實(shí),也可以通過(guò)mfssetgoal命令來(lái)改變?cè)O(shè)定。

  [root@mfs-client ~]# cd /mfsdata/

  [root@mfs-client mfsdata]# dd if=/dev/zero of=/mfsdata/test.file bs=1M count=200

  200+0 records in

  200+0 records out

  209715200 bytes (210 MB) copied, 9.1094 s, 23.0 MB/s

  [root@mfs-client mfsdata]# mfsgetgoal test.file

  test.file: 1

  [root@mfs-client mfsdata]# mfssetgoal 3 test.file

  test.file: 3

  [root@mfs-client mfsdata]# mfsgetgoal test.file

  test.file: 3

  補(bǔ)充:

  用mfsgetgoal –r和mfssetgoal –r同樣的操作可以對(duì)整個(gè)樹形目錄遞歸操作

  [root@mfs-client mfsdata]# mkdir dir/dir1/dir2/dir3 -p

  [root@mfs-client mfsdata]# touch dir/file1

  [root@mfs-client mfsdata]# touch dir/dir1/file2

  [root@mfs-client mfsdata]# touch dir/dir1/dir2/file3

  [root@mfs-client mfsdata]# mfsgetgoal -r dir

  dir:

  files with goal 1 : 3

  directories with goal 1 : 4

  [root@mfs-client mfsdata]# mfssetgoal -r 3 dir

  dir:

  inodes with goal changed: 7

  inodes with goal not changed: 0

  inodes with permission denied: 0

  實(shí)際的拷貝份數(shù)可以通過(guò)mfscheckfile 和 mfsfileinfo 命令來(lái)證實(shí),例如:

  [root@mfs-client mfsdata]# mfscheckfile test.file

  test.file:

  chunks with 1 copy: 4

  [root@mfs-client mfsdata]# mfsfileinfo test.file

  test.file:

  chunk 0: 00000000000000D2_00000001 / (id:210 ver:1)

  copy 1: 172.16.100.6:9422

  chunk 1: 00000000000000D3_00000001 / (id:211 ver:1)

  copy 1: 172.16.100.7:9422

  chunk 2: 00000000000000D4_00000001 / (id:212 ver:1)

  copy 1: 172.16.100.6:9422

  chunk 3: 00000000000000D5_00000001 / (id:213 ver:1)

  copy 1: 172.16.100.7:9422

  需要注意的是,一個(gè)包含數(shù)據(jù)的零長(zhǎng)度的文件,盡管沒(méi)有設(shè)置為非零的目標(biāo)(the non-zero goal),但是在使用命令查詢時(shí)將返回一個(gè)空值

  [root@mfs-client mfsdata]# touch a

  [root@mfs-client mfsdata]# mfscheckfile a

  a:

  [root@mfs-client mfsdata]# mfsfileinfo a

  a:

  2、回收

  一個(gè)刪除文件能夠存放在一個(gè)“垃圾箱”的時(shí)間就是一個(gè)隔離時(shí)間,這個(gè)時(shí)間可以用 mfsgettrashtime 命令來(lái)驗(yàn)證,也可以用 mfssettrashtime 命令來(lái)設(shè)置。例如:

  [root@mfs-client mfsdata]# mfsgettrashtime test.file

  test.file: 86400

  [root@mfs-client mfsdata]# mfssettrashtime 0 test.file

  test.file: 0

  $ mfsgettrashtime /mnt/mfs-test/test1

  /mnt/mfs-test/test1: 0

  這些工具也有個(gè)遞歸選項(xiàng)-r,可以對(duì)整個(gè)目錄樹操作,例如:

  [root@mfs-client mfsdata]# mfsgettrashtime -r dir

  dir:

  files with trashtime 86400 : 3

  directories with trashtime 86400 : 4

  [root@mfs-client mfsdata]# mfssettrashtime -r 0 dir

  dir:

  inodes with trashtime changed: 7

  inodes with trashtime not changed: 0

  inodes with permission denied: 0

  [root@mfs-client mfsdata]# mfsgettrashtime -r dir

  dir:

  files with trashtime 0 : 3

  directories with trashtime 0 : 4

  時(shí)間的單位是秒(有用的值有:1小時(shí)是3600秒,24 – 86400秒,1 – 604800秒)。就像文件被存儲(chǔ)的份數(shù)一樣, 為一個(gè)目錄 設(shè)定存放時(shí)間是要被新創(chuàng)建的文件和目錄所繼承的。數(shù)字0意味著一個(gè)文件被刪除后, 將立即被徹底刪除,在想回收是不可能的

  刪除文件可以通過(guò)一個(gè)單獨(dú)安裝 MFSMETA 文件系統(tǒng)。特別是它包含目錄 / trash (包含任然可以被還原的被刪除文件的信息)和 / trash/undel (用于獲取文件)。只有管理員有權(quán)限訪問(wèn)MFSMETA(用戶的uid 0,通常是root)。

  在開始mfsmount進(jìn)程時(shí),用一個(gè)-m或-o mfsmeta的選項(xiàng),這樣可以掛接一個(gè)輔助的文件系統(tǒng)MFSMETA,這么做的目的是對(duì)于意外的從MooseFS卷上刪除文件或者是為了釋放磁盤空間而移動(dòng)的文件而又此文件又過(guò)去了垃圾文件存放期的恢復(fù),例如:

  mfsmount -m /mnt/mfsmeta

  需要注意的是,如果要決定掛載mfsmeta,那么一定要在 mfsmaster 的 mfsexports.cfg 文件中加入如下條目:

  *                       .       rw

  原文件中有此條目,只要將其前的#去掉就可以了。

  否則,你再進(jìn)行掛載mfsmeta的時(shí)候,會(huì)報(bào)如下錯(cuò)誤:

  mfsmaster register error: Permission denied

  下面將演示此操作:

  $ mfssettrashtime 3600 /mnt/mfs-test/test1

  /mnt/mfs-test/test1: 3600

  從“垃圾箱”中刪除文件結(jié)果是釋放之前被它站用的空間(刪除有延遲,數(shù)據(jù)被異步刪除)。在這種被從“垃圾箱”刪除的情況下,該文件是不可能恢復(fù)了。

  可以通過(guò)mfssetgoal工具來(lái)改變文件的拷貝數(shù),也可以通過(guò)mfssettrashtime工具來(lái)改變存儲(chǔ)在“垃圾箱”中的時(shí)間。

  在 MFSMETA 的目錄里,除了trash和trash/undel兩個(gè)目錄外,還有第三個(gè)目錄reserved,該目錄內(nèi)有已經(jīng)刪除的文件,但卻有一直打開著。在用戶關(guān)閉了這些被打開的文件后,reserved目錄中的文件將被刪除,文件的數(shù)據(jù)也將被立即刪除。在reserved目錄中文件的命名方法同trash目錄中的一樣,但是不能有其他功能的操作。

  3、快照

  MooseFS系統(tǒng)的另一個(gè)特征是利用mfsmakesnapshot工具給文件或者是目錄樹做快照,例如:

  $ mfsmakesnapshot source … destination

  Mfsmakesnapshot 是在一次執(zhí)行中整合了一個(gè)或是一組文件的拷貝,而且任何修改這些文件的源文件都不會(huì)影響到源文件的快照, 就是說(shuō)任何對(duì)源文件的操作,例如寫入源文件,將不會(huì)修改副本(或反之亦然)。

  文件快照可以用mfsappendchunks,就像MooseFS1.5中的mfssnapshot一樣,,作為選擇,二者都可以用。例如:

  $ mfsappendchunks destination-file source-file …

  當(dāng)有多個(gè)源文件時(shí),它們的快照被加入到同一個(gè)目標(biāo)文件中(每個(gè)chunk的最大量是chunk)。五、額外的屬性文件或目錄的額外的屬性(noowner, noattrcache, noentrycache),可以被mfsgeteattr,mfsseteattr,mfsdeleattr工具檢查,設(shè)置,刪除,其行為類似mfsgetgoal/mfssetgoal or或者是mfsgettrashtime/mfssettrashtime,詳細(xì)可見(jiàn)命令手冊(cè)。

  二、綜合測(cè)試

  1、破壞性測(cè)試

  a、模擬MFS各角色宕機(jī)測(cè)試

  b、mfs 災(zāi)難與恢復(fù)各種場(chǎng)景測(cè)試

  2、性能測(cè)試

  針對(duì) MooseFS 的性能測(cè)試,我這邊也沒(méi)有詳細(xì)去做。通過(guò)偉大的互聯(lián)網(wǎng),我找到了幾位前輩,針對(duì) MooseFS 所做的詳細(xì)性能測(cè)試,這里我就貼出來(lái)展示一下。

  1、基準(zhǔn)測(cè)試情況:

  隨機(jī)讀

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  隨機(jī)寫

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  順序讀

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  順序?qū)?/p>

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  小文件性能測(cè)試情況:

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

分布式文件系統(tǒng)之MooseFS----管理優(yōu)化
分布式文件系統(tǒng)之MooseFS----管理優(yōu)化
分布式文件系統(tǒng)之MooseFS----管理優(yōu)化
   

如果想看更多有關(guān) MooseFS 性能方面的測(cè)試報(bào)告,可以去參考如下鏈接:

  http://blog.liuts.com/post/203/          MooseFS性能圖表[原創(chuàng)]

  三、監(jiān)控

  1、mfs內(nèi)置的監(jiān)控工具mfscgiserv

  針對(duì) Moosefs 每個(gè)組件的監(jiān)控,Moosefs自帶了一個(gè)監(jiān)控工具 mfscgiserv,它是一個(gè) python 編寫的 web 監(jiān)控頁(yè)面,監(jiān)聽端口為9425。該監(jiān)控頁(yè)面為我們提供了 Master Server、Metalogger Server、Chunk Servers以及所有Client掛載的狀態(tài)信息及相關(guān)性能指標(biāo)圖示。

  在我們安裝好 Master Server 時(shí),它就已經(jīng)默認(rèn)安裝上了,我們可以在/usr/local/mfs/share/mfscgi/  目錄下看到這個(gè)監(jiān)控頁(yè)面的文件。

  [root@mfs-master-1 mfs]# ll /usr/local/mfs/share/mfscgi/         # 這個(gè) mfscgi 目錄里面存放的是master圖形監(jiān)控界面的程序

  total 136

  -rwxr-xr-x. 1 root root 1881 Dec 29 00:10 chart.cgi

  -rw-r–r–. 1 root root 270 Dec 29 00:10 err.gif

  -rw-r–r–. 1 root root 562 Dec 29 00:10 favicon.ico

  -rw-r–r–. 1 root root 510 Dec 29 00:10 index.html

  -rw-r–r–. 1 root root 3555 Dec 29 00:10 logomini.png

  -rwxr-xr-x. 1 root root 107456 Dec 29 00:10 mfs.cgi

  -rw-r–r–. 1 root root 5845 Dec 29 00:10 mfs.css

  我們可以通過(guò)執(zhí)行如下命令啟動(dòng)該監(jiān)控程序。

  1

  /moosefs_install_path/sbin/mfscgiserv start

  啟動(dòng)完畢之后,我們可以通過(guò)訪問(wèn)http://IP:9425來(lái)訪問(wèn)該監(jiān)控頁(yè)面。

分布式文件系統(tǒng)之MooseFS----管理優(yōu)化

  下面,我列出啟動(dòng) mfscgiserv 監(jiān)控工具的操作:

  [root@mfs-master-1 mfs]# /usr/local/mfs/sbin/mfscgiserv start   # 啟動(dòng)mfs圖形控制臺(tái)

  lockfile created and locked

  starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs-1.6.27/share/mfscgi)

  [root@mfs-master-1 mfs]# netstat -lantup|grep 9425

  tcp 0 0 0.0.0.0:9425 0.0.0.0:* LISTEN 7940/python

  tcp 0 0 172.16.100.1:9425 172.16.100.100:50693 ESTABLISHED 7940/python

  tcp 0 0 172.16.100.1:9425 172.16.100.100:50692 ESTABLISHED 7940/python

  [root@mfs-master-1 mfs]# lsof -i tcp:9425

  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

  python 7940 root 3u IPv4 27066 0t0 TCP *:9425 (LISTEN)

  python 7940 root 7u IPv4 27136 0t0 TCP 172.16.100.1:9425->172.16.100.100:50693 (ESTABLISHED)

  python 7940 root 8u IPv4 27124 0t0 TCP 172.16.100.1:9425->172.16.100.100:50692 (ESTABLISHED)

  下面是訪問(wèn)的頁(yè)面:

  spacer.gifwKiom1Szsl2Cl8fyAAUfoEFIMdM006.jpg

  2、使用zabbix監(jiān)控mfs

  1、監(jiān)控要點(diǎn)

  根據(jù) MooseFS 中各個(gè)組件的特點(diǎn),我們所需要監(jiān)控的要點(diǎn)主要有如下幾點(diǎn):

  a、Master Server的9420、9421端口,Chunk Server 的9422端口

  b、Chunk Server 的磁盤空間

  2、實(shí)施步驟

  通過(guò)在各個(gè)組件的對(duì)應(yīng)服務(wù)器上部署好zabbix監(jiān)控的代理端,然后分別添加端口監(jiān)控和磁盤監(jiān)控即可!

  操作過(guò)程略!

  四、維護(hù)

  1、常用管理命令

  mfsgetgoal              # 獲取mfs目錄、文件的副本數(shù)

  mfssetgoal              # 設(shè)置mfs目錄、文件的副本數(shù)

  mfscheckfile            # 查看副本數(shù)簡(jiǎn)單

  mfsfileinfo             # 查看詳細(xì)的副本數(shù),chunks/分片

  mfsdirinfo              # 以數(shù)量的方法顯示mfsfileinfo

  mfsgettrashtime         # 獲取垃圾箱的定隔時(shí)間

  mfssettrashtime         # 設(shè)置垃圾箱的定隔時(shí)間(和memcached類)

  mfsmakesnapshot         # 快照

  2、可能存在的問(wèn)題

  A、mfscgiserv的訪問(wèn)安全問(wèn)題

  mfscgiserv只是一個(gè)非常簡(jiǎn)單的HTTP服務(wù)器,只用來(lái)編寫運(yùn)行MooseFS CGI腳本。它不支持任何的附加功能,比如HTTP認(rèn)證。如果公司出于對(duì)監(jiān)控界面的安全訪問(wèn)需求,我們可以使用功能豐富的HTTP服務(wù)器,比如apache、nginx等。在使用這些更強(qiáng)大的HTTP服務(wù)器時(shí),我們只需要將CGI和其它數(shù)據(jù)文件(index.html、mfs.cgi、chart.cgi、mfs.css、logomini.png、err.gif)存放到選擇的站點(diǎn)根目錄下。我們可以創(chuàng)建一個(gè)新的虛擬機(jī),來(lái)設(shè)定特定的主機(jī)名和端口來(lái)進(jìn)行訪問(wèn)。

  B、Master Server 的單點(diǎn)問(wèn)題

  Master server的單點(diǎn)問(wèn)題,在前面介紹 MooseFS 的優(yōu)缺點(diǎn)時(shí)已經(jīng)提到過(guò)了。由于官方提供的解決方案,在恢復(fù)的時(shí)候還是需要一定時(shí)間的,因此我們建議使用第三方的高可用方案(heartbeat+drbd+moosefs)來(lái)解決 Master Server 的單點(diǎn)問(wèn)題。

  3、性能瓶頸的解決辦法

  由于 MooseFS 的高可擴(kuò)展性,因此我們可以很輕松的通過(guò)增加 Chunk Server 的磁盤容量或增加 Chunk Server 的數(shù)量來(lái)動(dòng)態(tài)擴(kuò)展整個(gè)文件系統(tǒng)的存儲(chǔ)量和吞吐量,這些操作絲毫不會(huì)影響到在線業(yè)務(wù)。

  4、安全開啟/停止MFS集群

  1、啟動(dòng) MooseFS 集群

  安全的啟動(dòng) MooseFS 集群(避免任何讀或?qū)懙腻e(cuò)誤數(shù)據(jù)或類似的問(wèn)題)的步驟如下:

  1、啟動(dòng) mfsmaster 進(jìn)程

  2、啟動(dòng)所有的 mfschunkserver 進(jìn)程

  3、啟動(dòng) mfsmetalogger 進(jìn)程(如果配置了mfsmetalogger)

  4、當(dāng)所有的 chunkservers 連接到 MooseFS master 后,任何數(shù)目的客戶端可以利用 mfsmount 去掛載被 export 的文件系統(tǒng)。(可以通過(guò)檢查 master 的日志或是 CGI 監(jiān)控頁(yè)面來(lái)查看是否所有的chunkserver 被連接)。

  2、停止 MooseFS 集群

  安全的停止 MooseFS 集群的步驟如下:

  1、在所有的客戶端卸載MooseFS 文件系統(tǒng)(用umount命令或者是其它等效的命令)

  2、用 mfschunkserver –s命令停止chunkserver進(jìn)程

  3、用 mfsmetalogger –s命令停止metalogger進(jìn)程

  4、用 mfsmaster –s命令停止master進(jìn)程

  5、增加塊設(shè)備(會(huì)自動(dòng)平均)

  針對(duì)增加塊設(shè)備的情況,其實(shí)就是說(shuō)針對(duì)chunk server 有變化(增加或減少)的情況。

  為了增加一個(gè)案例說(shuō)明,這里就以 UC 在使用 MooseFS 中遇到的一個(gè)問(wèn)題為案例,講解新增加 chunk server 時(shí),MooseFS集群發(fā)生的變化,其實(shí)也就是 Master Server 發(fā)生的變化。

  UC在使用 MooseFS 集群的過(guò)程中,有次一臺(tái) Chunk Server 掛了,于是就涉及到了后期的恢復(fù)問(wèn)題。在問(wèn)題Chunk Server修復(fù)之后,就從新加入到了集群當(dāng)中。此時(shí),新增加的 chunk server 啟動(dòng)之后會(huì)向 Master 匯報(bào) Chunk 的信息,Master接收到 Chunk 信息之后會(huì)逐個(gè)檢查 Chunk_id是否存在。如果不存在,就表示該chunk_id其實(shí)已經(jīng)刪除了(chunk_id過(guò)期),然后會(huì)調(diào)用chunk_new()創(chuàng)建該chunk,并設(shè)置lockedio屬性為7天后。這些操作都是屬于內(nèi)存操作,并且Master是單線程的進(jìn)程,并不存在全局鎖,因此不會(huì)導(dǎo)致 Master 阻塞無(wú)響應(yīng)。因此,針對(duì)增加chunk server的情況,是不會(huì)對(duì)MooseFS集群產(chǎn)生什么大的影響的。

  以上就是新增加 Chunk Server 后的,MooseFS 集群中 Master Server 的變化。而針對(duì)各個(gè)Chunk Server,Master Server會(huì)重新去調(diào)整塊文件的磁盤空間,然后全部重新動(dòng)態(tài)分配塊文件。如果遇到空間不夠的磁盤,Master Server會(huì)自動(dòng)調(diào)整塊文件的分布,從不夠的磁盤里動(dòng)態(tài)的把塊服務(wù)移動(dòng)到有大的磁盤塊服務(wù)器里

  當(dāng)然,如果按照上面的情況這次就不會(huì)是故障了,因此并不會(huì)對(duì) MooseFS 集群產(chǎn)生什么大的影響。由于他們當(dāng)時(shí)因?yàn)橘Y源緊張,就把 Master Server 放到了虛擬機(jī)上,而虛擬機(jī)的磁盤是掛載的iscsi磁盤。并且他們的MooseFS使用的版本并不是最新的1.6.27,而是1.6.19。在1.6.19版本中,會(huì)把chunk的匯報(bào)過(guò)程寫入磁盤,這樣就導(dǎo)致了幾十萬(wàn)條的磁盤寫入,由于磁盤是前面提到的網(wǎng)絡(luò)盤,就最終釀成了 Master Server 恢復(fù)時(shí)無(wú)響應(yīng)幾十分鐘。

  因此,我們?cè)谏a(chǎn)環(huán)境中,針對(duì)Master Server的選型一定不能使用虛擬機(jī),而是使用大內(nèi)存量的物理機(jī)。

    文章來(lái)源:http://nolinux.blog.51cto.com/4824967/1602616

上一篇:安卓防火墻 PS DroidWall

下一篇:關(guān)于“RFID破解兩三事”的一些事