zoukankan      html  css  js  c++  java
  • 分布式文件系统(2013-3-2)

    MFS文件系统结构:

    1. 管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝。
    2. 元数据日志服务器: 负责备份 master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作。
    3. 数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
    4. 客户端: 通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地 unix 文件系统使用一样的效果。
    MFS部署:

    系统:rhel6.3 selinux and iptables disabled

    master:192.168.1.120

    chunkserver1:192.168.1.122

    chunkserver2:192.168.1.123

    client:192.168.1.124

    软件下载 http://www.moosefs.org

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    首先在master(192.168.1.120)配置:

    将下载下来的tar包编译成rpm,方便安装

    yum install -y gcc make rpm-build fuse-devel zlib-devel

    rpmbuild -tb mfs -1.6.27.1.tar.gz (此时会报错:可作如下改动)

    mv mfs-1.6.27.1.tar.gz  mfs-1.6.27.tar.gz (因为rpmbuild是读取tar包里面的.spec文件进行编译,但是.spec里面写的是mfs-1.6.27.tar.gz,所以需要将原tar包的名字改成与spec里面一致,要不然会提示无法找到文件)

    然后再执行:rpmbuild -tb mfs -1.6.27.tar.gz

    完成之后进入:cd  /rpmbuild/RPMS/x86_64

    rpm -ivh mfs-cgi-1.6.27-2.x86_64.rpm mfs-cgiserv-1.6.27-2.x86_64.rpm mfs-master-1.6.27-2.x86_64.rpm

    其中cgi文件是为了通过web界面进行管理,比较方便

    cd /etc/mfs

    将配置文件的模板(.dist),复制成真正的配置文件(.cfg)

    cp mfsexports.cfg.dist mfsexports.cfg

    cp mfsmaster.cfg.dist mfsmaster.cfg

    cp mfstopology.cfg.dist mfstopology.cfg

    打开mfsmaster.cfg可以看到默认WORKING_USER=nobody,SYSLOG_IDENT = mfsmaster,前者代表运行matser server的用户,后者代表master server在整个分布式系统中的标识,都可以根据自己需要更改,但是后续配置参数要保持一致即可。为了方便,这里不做任何改动,保持默认值。

    vi /etc/hosts

    添加:192.168.1.120  mfsmaster

    cd /var/lib/mfs

    cp metadata.mfs.empty etadata.mfs

    chown nobody .-R(这里面写了数据的挂载目录,只用用户有读写权限,需将运行master server的用户改成对metadata.mfs可以读写,这里使用的是默认用户nobody)

    启动mfsmaster start

    用rpm -ql mfs-cgi 查看mfscgi管理工具安装目录为:/usr/share/mfscgi

    cd /usr/share/mfscgi

    chmod +x *.cgi(添加可执行权限)

    mfscgiserv start

    启动成功后可看到监听端口:9425

    打开浏览器,输入192.168.1.120:9425回车,可看到MFS的网页管理界面,可以查看整个分布式文件系统的信息。

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    chunckserver1(192.168.1.122)端的配置:

    将master中编译的rpm包(cd /root/home/rpmbuild/RPMS/ x86_64 )中的mfs-chunkserver-1.6.27.x86_64.rpm复制到192.168.1.122中,这里复制到/root/home

    cd /root/home

    rpm -ivh mfs-chunkserver-1.6.27.x86_64.rpm

    cd /etc/mfs

    cp mfschunkserver.cfg.dist mfschunkserver.cfg
    cp mfshdd.cfg.dist mfshdd.cfg

    vi mfshdd.cfg

    添加/mnt/chunk1

    mkdir /mnt/chunk1

    mkdir /var/lib/mfs(在配置文件中,默认moosefs产生的数据记录在这个目录中,需要手动创建)

    chown nobody /var/lib/mfs

    vi /etc/hosts

    添加:192.168.1.120  mfsmaster

    将一个lv(logical volum,lv的创建可参考我的另一篇关于lvm的文字)格式化:

    mkfs.ext4 /dev/newvg/demo (demo是192.168.1.122上的lv)

    mount /dev/newvg/demo /mnt/chunk1/并将挂载信息写如fstable中,以便开启自动挂载

    然后mount -a 检查挂载是否正确

    mfschunkserver start

    然后刷新MFS网页管理界面,可以看到一个chunk server已经成功加入系统

    chunkserver2(192.168.1.123)的配置和上面所述完全一样,也就是说后续想加入多个chunkserver配置均可参考上述步骤。

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    client配置:

    将master中编译的rpm包(cd /root/home/rpmbuild/RPMS/ x86_64 )中的mfs-client-1.6.27.x86_64.rpm复制到192.168.1.124中,这里复制到/root/home

    yum localinstall mfs-client-1.6.27-2.x86_64.rpm (这里之所以不用rpm -ivh安装是因为客户端安装存在依赖性问题,yum可以自动检测并解决依赖性)

     cd /etc/mfs/

    cp mfsmount.cfg.dist mfsmount.cfg
    vi mfsmount.cfg
    mkdir /mnt/mfs

    vi /etc/hosts

    添加:192.168.1.120  mfsmaster

    mfsmount

    然后df可以看到/mnt/mfs已经自动挂载了mfsmaster:9421

    这时在客户端读写数据,就是在向MFS读写数据,chunkserver1和chunkserver2可以对数据进行存储,和备份,轮循。

  • 相关阅读:
    信息检索重点句子分析部分
    信息检索重点关键字
    信息检索问答部分
    信息检索重点句子分析部分
    信息检索重点句子分析部分
    信息检索重点句子分析部分
    信息检索问答部分
    信息检索问答部分
    信息检索问答部分
    2007年中国羽毛球大师赛直播时间表
  • 原文地址:https://www.cnblogs.com/90zeng/p/4121634.html
Copyright © 2011-2022 走看看