一 、 掛載文件系統
啟動master server和chunkserver后,客戶機便可以利用mfsmount掛接mfs文件系統
mfsmount
-H master 管理服務器的ip地址
-P port 是管理服務器的端口號,按照mfsmaster.cfg配置文件中的變量 MATOCU_LISTEN_PORT
的定義進行填寫,如果master serve使用的是默認端口號則不用指出。
-S PATH 指出被掛接mfs目錄的子目錄,默認是/目錄,就是掛載整個mfs目錄。
mountpoint 指先前創建的用來掛接mfs的目錄
在開始mfsmount進程時,用一個-m或-o mfsmeta的選項,這樣可以掛接一個輔助的文件系統MFSMETA,這么做的目的是對于意外的從MooseFS卷上刪除文件或者是為了釋放磁盤空間而移動的文件而又此文件又過去了垃圾文件存放期的恢復,例如:
mfsmount -m /mnt/mfsmeta
需要注意的是,如果要決定掛載mfsmeta,那么一定要在mfsmaster的mfsexports.cfg文件中加入如下條目:
* . rw
原文件中有此條目,只要將其前的#去掉就可以了。
基本操作
掛載文件系統后就可以執行所有的標準的文件操作了(如創建,拷貝,刪除,重命名文件,等等)。MooseFS是一個網絡文件系統,因此操作進度可能比本地系統要慢。
MooseFS卷的剩余空間檢查可以用和本地文件系統同樣的方法,例如df命令:
$ df -h | grep mfs
mfsmaster:9421 85T 80T 4.9T 95% /mnt/mfs
mfsmaster:9321 394G 244G 151G 62% /mnt/mfs-test
重要的是每一個文件可以被儲存多個副本,在這種情況下,每一個文件所占用的空間要比其文件本身大多了。此外,被刪除且在有效期內(trashtime)的文件都放在一個“垃圾箱”,所以他們也占用的空間,其大小也依賴文件的份數。就像其他Unix的文件系統一樣,以防刪除一個被其它進程打開文件,數據將被一直存儲,至少直到文件被關閉。
二、MooseFS的特定的操作
1、設定的目標
目標(goal),是指文件被拷貝的份數,設定了拷貝的份數后是可以通過可以mfsgetgoal命令來證實的,也可以通過mfssetgoal來改變設定。例如:
$ mfsgetgoal /mnt/mfs-test/test1
/mnt/mfs-test/test1: 2
$ mfssetgoal 3 /mnt/mfs-test/test1
/mnt/mfs-test/test1: 3
$ mfsgetgoal /mnt/mfs-test/test1
/mnt/mfs-test/test1: 3
用mfsgetgoal –r和mfssetgoal –r同樣的操作可以對整個樹形目錄遞歸操作。
$ mfsgetgoal -r /mnt/mfs-test/test2
/mnt/mfs-test/test2:
files with goal 2 : 36
directories with goal 2 : 1
$ mfssetgoal -r 3 /mnt/mfs-test/test2
/mnt/mfs-test/test2:
inodes with goal changed: 37
inodes with goal not changed: 0
inodes with permission denied: 0
$ mfsgetgoal -r /mnt/mfs-test/test2
/mnt/mfs-test/test2:
files with goal 3 : 36
directories with goal 3 : 1
實際的拷貝份數可以通過mfscheckfile 和 mfsfileinfo 命令來證實,例如:
$ mfscheckfile /mnt/mfs-test/test1
/mnt/mfs-test/test1:
3 copies: 1 chunks
三、垃圾箱(trash bin)設定隔離的時間(quarantine time)
一個刪除文件能夠存放在一個“垃圾箱”的時間就是一個隔離時間,這個時間可以用mfsgettrashtime命令來驗證,也可以用mfssettrashtime命令來設置,例如:
$ mfsgettrashtime /mnt/mfs-test/test1
/mnt/mfs-test/test1: 604800
$ mfssettrashtime 0 /mnt/mfs-test/test1
/mnt/mfs-test/test1: 0
$ mfsgettrashtime /mnt/mfs-test/test1
/mnt/mfs-test/test1: 0
這些工具也有個遞歸選項-r,可以對整個目錄樹操作,例如:
$ mfsgettrashtime -r /mnt/mfs-test/test2
/mnt/mfs-test/test2:
files with trashtime 0 : 36
directories with trashtime 604800 : 1
$ mfssettrashtime -r 1209600 /mnt/mfs-test/test2
/mnt/mfs-test/test2:
inodes with trashtime changed: 37
inodes with trashtime not changed: 0
inodes with permission denied: 0
$ mfsgettrashtime -r /mnt/mfs-test/test2
/mnt/mfs-test/test2:
files with trashtime 1209600 : 36
directories with trashtime 1209600 : 1
時間的單位是秒(有用的值有:1小時是3600秒,24 – 86400秒,1 – 604800秒)。就像文件被存儲的份數一樣, 為一個目錄 設定存放時間是要被新創建的文件和目錄所繼承的。數字0意味著一個文件被刪除后, 將立即被徹底刪除,在想回收是不可能的
刪除文件可以通過一個單獨安裝MFSMETA文件系統。特別是它包含目錄 / trash (包含任然可以被還原的被刪除文件的信息)和 / trash/undel (用于獲取文件)。只有管理員有權限訪問MFSMETA(用戶的uid 0,通常是root)。
$ mfssettrashtime 3600 /mnt/mfs-test/test1
/mnt/mfs-test/test1: 3600
從“垃圾箱”中刪除文件結果是釋放之前被它站用的空間(刪除有延遲,數據被異步刪除)。在這種被從“垃圾箱”刪除的情況下,該文件是不可能恢復了。
可以通過mfssetgoal工具來改變文件的拷貝數,也可以通過mfssettrashtime工具來改變存儲在“垃圾箱”中的時間。
在 MFSMETA的目錄里,除了trash和trash/undel兩個目錄外,還有第三個目錄reserved,該目錄內有已經刪除的文件,但卻有一直打開著。在用戶關閉了這些被打開的文件后,reserved目錄中的文件將被刪除,文件的數據也將被立即刪除。在reserved目錄中文件的命名方法同trash目錄中的一樣,但是不能有其他功能的操作。
四、快照
MooseFS系統的另一個特征是利用mfsmakesnapshot工具給文件或者是目錄樹做快照,例如:
$ mfsmakesnapshot source … destination
Mfsmakesnapshot是在一次執行中整合了一個或是一組文件的拷貝,而且任何修改這些文件的源文件都不會影響到源文件的快照, 就是說任何對源文件的操作,例如寫入源文件,將不會修改副本(或反之亦然)。
文件快照可以用mfsappendchunks,就像MooseFS1.5中的mfssnapshot一樣,,作為選擇,二者都可以用。例如:
$ mfsappendchunks destination-file source-file …
當有多個源文件時,它們的快照被加入到同一個目標文件中(每個chunk的最大量是chunk)。
五、額外的屬性
文件或目錄的額外的屬性(noowner, noattrcache, noentrycache),可以被mfsgeteattr,mfsseteattr,mfsdeleattr工具檢查,設置,刪除,其行為類似mfsgetgoal/mfssetgoal or或者是mfsgettrashtime/mfssettrashtime,詳細可見命令手冊
- 一、日常運維腳本
- 1.1 批量創建用戶并賦予sudo權限
- 1.2 批量主機建立互信
- 1.3create_images.sh
- 1.4monitor.sh
- 1.5ftp腳本
- 1.6格式化分區
- 1.7簡單的遠程執行腳本
- 二、常用服務使用
- 1 ceph (分布式文件系統)
- 1.1 ceph 簡介
- 1.2 準備環境
- 1.3 開始部署
- 1.4 cephfs掛載
- 1.5 RBD塊存儲
- 1.6 object 對象存儲
- 1.7 集群擴展
- 1.7.1 增加刪除MON
- 1.7.2 增加刪除OSD
- 1.7.3 刪除MDS
- 注意事項
- 遇到的問題
- 1.8ceph查找數據文件
- 1.9卸載并清理環境
- 2、mysql (數據庫)
- 2.1 搭建
- 2.2 使用教程
- 2.2.1 mysql基礎配置
- 2.2.1.1 用戶權限管理
- 2.2.1.2用戶資源限制
- 2.2.1.3 密碼管理
- 2.2.1.4用戶lock
- 2.2.2mysql語法詳解
- 2.2.1建庫、表語句
- 2.2.2.2 插入 insert
- 2.2.2.3更新 update
- 2.2.2.4刪除 delete
- 2.2.2.5查詢 select
- 2.2.6視圖 索引 view index
- 2.2.7 修改 alert
- 2.2.2.8清理 truncate drop
- 2.2.9重命名 rename
- 示例語句
- 2.2.3mysql常用函數
- 2.3.1 對比操作符統概
- 2.3.2對比操作符詳解
- 2.3.3邏輯操作符
- 2.2.4分配操作符
- 2.2.5流程控制函數
- 2.2.6字符串函數
- 2.2.7字符串對比函數
- 2.2.8數字函數
- 2.2.9日期和時間函數
- 2.2.10聚合/格式轉換函數
- 2.2.11 子查詢
- 示例語句
- 2.2.4 mysql 高級應用
- 2.2.4.1 存儲過程 函數
- 2.2.4.2流程控制
- 2.2.4.3游標
- 2.2.4.4觸發器
- 課堂練習
- 2.2.2.5 數據庫設計
- 2.2.5.1 數據類型
- 2.2.5.2存儲引擎
- 2.2.6Innodb內核
- 1、innodb事務和多版本控制
- 2、體系結構
- 3、InnoDB配置
- 4、buffer pool設置
- 5、其他配置
- innodb限制
- 2.7 字符集
- 2.8鎖機制和事務
- 2.8.1鎖機制
- 2.8.2事務
- 2.9分區
- 2.9.1 自動分區
- 2.10復制
- 2.11mysql搬移數據目錄
- 2.12組復制 GR
- 簡介
- 搭建
- 2.3日常運維
- 2.3.1定時任務
- 2.4mycat
- 2.4.1 報錯分析
- 2.4.2 修改字符集
- 2.11 mycat使用
- 2.5遇到問題
- 2.5.1 表名庫名忽略大小寫
- 3、PAAS平臺搭建
- 問題匯總
- 1、docker
- 2、日常運維
- 3.1 Kubernetes
- 3.1 kubernetes 高版本搭建
- 4、GlusterFS搭建
- 5、MooseFS搭建
- 5.1搭建
- 5.2運維
- 5.2.1 mfs日志解析
- 5.2.2清理mfs的垃圾數據
- 5.2.3元數據故障恢復
- 5.2.4 MFS優化
- 5.2.5 配置機架感知
- 5.2.6 客戶端工具集
- 6、集群切換命令
- 7、ntp服務
- 8、monggoDB
- 8.1搭建單機
- 2、搭建集群及分片
- 9、MariaDB Galera Cluster
- 9.1源碼安裝MariaDB
- 9.2galera cluster 優劣
- 9.3 rpm安裝mariadb
- 10 HAproxy1.7搭建
- 11、sysbench 搭建使用
- 0.5版本
- 12 percona-xtradb-cluster
- 13http服務相關
- 13.1 http狀態碼解析
- 14 zookeeper
- 14.1 zookeeper日志查看
- 14.2 配置解析
- 14.3 優化
- 15搭建私有pip源
- 16/var/log的日志文件解釋
- 15 ansible的搭建及使用
- 15.1 搭建
- 15.2 使用說明
- 16. 搭建本地yum源
- zookeeper
- 優化
- 四、開發語言
- 1、GO語言
- 1.1go簡介
- 1.1.1hello_world初識GO
- 1.1.2并發介紹
- 1.1.3 chan介紹
- 1.1.4多返回值
- 1.2go基礎
- 1.2.1數據類型
- 1.2.2 go基礎結構
- 1.2.3 const及變量介紹
- 1.2.3os和time介紹
- 1.2.4 字符串
- 1.2.5條件判斷
- 1.2.6 homework
- go--help
- 1.3 go基礎2
- 1.3.1 數組 array
- 1.3.2切片 slice
- 1.3.3 時間和日期
- 1.3.4指針類型
- 1.3.5函數
- 1.3.6可變參數
- 1.3.7 defer
- 1.3.8遞歸
- 1.9閉包
- 1.10 map
- 1.11 sort
- 1.12 struct 結構體
- 2.perl語言
- 2.1 安裝lib包
- 3 python
- 1.語言基礎
- 2、編程教學
- 2.1變量和序列
- 2.2 條件語句