MooseFS的常见问题与操作

副本的设定

作为一种分布式文件系统, 基本原理是将文件分块, 每个块分不到几台机器上面, 这样, 如果某台机器故障或者因为网络问题不可达, 系统会进行自动的异常平衡策略处理, 通常是将每个数据块的副本数设定为2, 假定者2个副本分布在机器A和B上面, 如果机器A发生故障, 只剩下B上面的副本, 这时候master会检测到机器A故障, 并且数据块上面的实际副本数少于制定的副本数, 根据机器负载以及策略, 选择新的机器C, 并将B上面的数据Copy一份到C上面。

mfssetgoal -r 2 /mnt/mfs       // 将/mnt/mfs目录下面的文件副本数设为2

注意在搭建集群的时候, 一定要将副本数设定为大于等于2, 否则一旦某台机器故障, 就会出现数据丢失。

垃圾数据的清理

MFS提供了垃圾数据的回收站功能, 允许将删除的数据保留一段时间然后删除, 默认是一天, 在很多系统里面, 实际上是不需要恢复回收站里面的数据, 直接设为0就可以了, 在负载很高的系统里面, 多缓存1天的垃圾数据, 对于mfsmaster和mfschunserver都是一种负担。

mfssettrashtime 0 -r   /mnt/mfs    // 设定垃圾站内文件存活时间为0秒
mfsgettrashtime /mnt/mfs               // 获取指定目录的垃圾文件存活时间

我们也可以手工恢复误删除的文件,前提是垃圾站内文件的存活时间有设定, 并且文件还没有被彻底删除。
首先挂载回收站目录:

mfsmount -m /mnt/mfs/trash -H MASTER_IP

然后站到被删除的文件, 注意,原本文件的目录分隔符从"/“变成了”|", 通过find找到文件在垃圾站里面的名字;
最后使用MV命令, 将文件移动到原本的位置;

文件数据不存在的处理

通常, 只有数据块有至少一个副本存在, 程序就能够正常工作, 但是有时候很不巧可能连续2个以上机器故障, 碰巧某个数据块的的2个副本分布在这2台机器上面, 在可会断是还可以看到这个文件的, 但当我们需要读取文件内容的时候, 徐彤就会卡住一段时间, 知道超时。那么, 我们就需要找到那些文件的数据异常。

mfsfileinfo /mnt/mfs/file1

该命令会列出指定文件的副本数以及副本位置, 名称的信息。 如果某个文件没有副本信息, 就可以判断该文件的数据异常, 可以通过mfsfilerepair进行修复:

mfsfilerepair /mnt/mfs/file1

你可能感兴趣的:(DFS)