标签为 MooseFS 的文章

在CentOS 6.4上安装配置GlusterFS

参考资料:
http://www.sohailriaz.com/glusterfs-howto-on-centos-6-x/
http://navyaijm.blog.51cto.com/4647068/1258250

背景介绍:
项目目前在文件同步方面采用的是rsync,在尝试用分布式文件系统替换的时候,使用过MooseFS,效果差强人意,在了解到了GlusterFS之后,决定尝试一下,因为它跟MooseFS相比,感觉部署上更加简单一些,同时没有元数据服务器的特点使其没有单点故障的存在,感觉非常不错。

环境介绍:
OS: CentOS 6.4 x86_64 Minimal
Servers: idc1-server1,idc1-server2,idc1-server3,idc1-server4
Client: idc1-server5

具体步骤:
1. 在idc1-server{1-4}上安装GlusterFS软件包:
# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
# yum install -y glusterfs glusterfs-server glusterfs-fuse

# /etc/init.d/glusterd start
# chkconfig glusterd on

2. 在idc1-server1上配置整个GlusterFS集群:
[root@idc1-server1 ~]# gluster peer probe idc1-server1

peer probe: success: on localhost not needed

[root@idc1-server1 ~]# gluster peer probe idc1-server2

peer probe: success

[root@idc1-server1 ~]# gluster peer probe idc1-server3

peer probe: success

[root@idc1-server1 ~]# gluster peer probe idc1-server4

peer probe: success

注意事项:
在某些情况下,idc1-server1在peer列表中会被识别为IP地址,这会造成一些通讯的问题。
假设idc1-server1的IP地址为10.100.1.11,则需要通过以下步骤来手动修复。
[root@idc1-server2 ~]# gluster peer detach 10.100.1.11

peer detach: success

[root@idc1-server2 ~]# gluster peer probe idc1-server1

peer probe: success

[root@idc1-server2 ~]# gluster peer status

Number of Peers: 3
  
Hostname: idc1-server3
Uuid: 01f25251-9ee6-40c7-a322-af53a034aa5a
State: Peer in Cluster (Connected)
  
Hostname: idc1-server4
Uuid: 212295a6-1f38-4a1e-968c-577241318ff1
State: Peer in Cluster (Connected)
  
Hostname: idc1-server1
Port: 24007
Uuid: ed016c4e-7159-433f-88a5-5c3ebd8e36c9
State: Peer in Cluster (Connected)

4. 在idc1-server1上创建GlusterFS磁盘:
[root@idc1-server1 ~]# gluster volume create datavolume1 replica 2 transport tcp idc1-server1:/usr/local/share/datavolume1 idc1-server2:/usr/local/share/datavolume1 idc1-server3:/usr/local/share/datavolume1 idc1-server4:/usr/local/share/datavolume1 force

volume create: datavolume1: success: please start the volume to access data

[root@idc1-server1 ~]# gluster volume create datavolume2 replica 2 transport tcp idc1-server1:/usr/local/share/datavolume2 idc1-server2:/usr/local/share/datavolume2 idc1-server3:/usr/local/share/datavolume2 idc1-server4:/usr/local/share/datavolume2 force

volume create: datavolume2: success: please start the volume to access data

[root@idc1-server1 ~]# gluster volume create datavolume3 replica 2 transport tcp idc1-server1:/usr/local/share/datavolume3 idc1-server2:/usr/local/share/datavolume3 idc1-server3:/usr/local/share/datavolume3 idc1-server4:/usr/local/share/datavolume3 force

volume create: datavolume3: success: please start the volume to access data

阅读全文 »

,

6 Comments

Salt实战之 自动安装部署MooseFS

暮然回首,我做运维已经有六年多了,从最开始那个一无所知的菜鸟,到现在能够胸有成竹的管理公司几百台服务器,中间走了不少的弯路。
就拿批量管理服务器这块儿来说吧,几年前自己只会Shell脚本,在服务器不多的时候,感觉还忙的过来,到后来服务器越来越多的时候就不行了。写了很多的脚本放到计划任务中定期执行,能解决一部分工作,但效率还是很低下,因为服务器太多了,每次脚本有变动就需要在所有服务器上都更新一遍,非常痛苦,后来我学会了用expect来处理交互,但效率依然很低下,等脚本自动登录完所有的机器并执行完相关命令,至少30分钟过去了。
后来我加入了一些技术群,了解到Func,Puppet以及Chef这样的工具,并试着使用它们来管理服务器,效果真的很好。

就在几个星期以前,在Puppet群里面,我听到了Salt这个词,Salt群主“绿肥”天天在里面“拉客”,号称是Func+Puppet,用Python实现的,由于我对Python很有好感,也还算有点基础,于是就试着用了用Salt。
学一个东西最快的方法就是用它去解决现有的实际问题,我选择了使用Salt来自动安装部署一套MooseFS分布式文件系统,结果,我花了1天的时间就完成了整个工作,同时对Salt的好感也超越了Puppet,说实话,我现在非常愿意将线上所有Puppet的代码都用Salt来重写一遍,其中包括整个Hadoop集群的自动部署。

好了,废话不多说,下面开始讲解整个实战过程。

Salt其实也仅仅只是一个工具,解决问题的关键是我们的思路,正比如我能够用Salt来实现自动安装部署MooseFS,那么前提肯定是我了解手动安装部署MooseFS的整个过程。因此,建议大家先阅读我的《在CentOS上安装部署MooseFS分布式文件系统》这篇文章,了解如何通过手动的方式来安装部署MooseFS。

接下来,我们首先要对Salt的基础进行一系列的学习,这里,我强烈推荐官网的Tutorial:
http://docs.saltstack.com/topics/tutorials/walkthrough.html
在完成了整个Tutorial之后,通过Module Index页面,我们能够快速查阅Salt所有模块的功能与用法:
http://docs.saltstack.com/py-modindex.html

我的整个Salt代码结构如下:
$ tree

.
├── pillar
│   ├── moosefs
│   │   └── params.sls
│   ├── _salt
│   │   └── params.sls
│   ├── schedules
│   │   └── params.sls
│   ├── top.sls
│   └── users
│       └── lists.sls
├── README.md
├── salt
│   ├── moosefs
│   │   ├── files
│   │   │   └── index.html
│   │   ├── states
│   │   │   ├── chunkserver.sls
│   │   │   ├── client.sls
│   │   │   ├── common.sls
│   │   │   ├── master.sls
│   │   │   └── metalogger.sls
│   │   └── templates
│   │       ├── httpd.conf
│   │       ├── mfschunkserver.cfg
│   │       ├── mfsexports.cfg
│   │       ├── mfshdd.cfg
│   │       ├── mfsmaster.cfg
│   │       └── mfsmetalogger.cfg
│   ├── _roles
│   │   ├── backup.sls
│   │   ├── datanode.sls
│   │   └── master.sls
│   ├── _salt
│   │   ├── states
│   │   │   └── minion.sls
│   │   └── templates
│   │       └── minion
│   ├── top.sls
│   └── users
│       └── states
│           └── create.sls
└── tools
    ├── install_salt_minion.sh
    └── tips.txt

阅读全文 »

, , ,

1 Comment

在CentOS上安装部署MooseFS分布式文件系统

参考资料:
http://www.moosefs.org/tl_files/manpageszip/moosefs-step-by-step-tutorial-cn-v.1.1.pdf

环境介绍:
OS: CentOS 6.3 x86_64
server1 - mfsmaster & mfschunkserver
server2 - mfsmetalogger & mfschunkserver & mfsclient
server3 - mfschunkserver

1. 什么是MooseFS
MooseFS是一个具有容错能力的分布式文件系统,支持挂载(通过FUSE)和与本地文件系统相同的操作。

MooseFS具有以下几个角色:
主服务器:Managing Server(master server)
数据节点:Data server(chunk servers)
备份服务器:Metadata backup servers(metalogger servers)
客户端:Client computers that access(mount) the files in MooseFS

2. 安装配置主服务器(仅在server1上)
sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
sudo yum install mfs

cd /etc/mfs
sudo cp mfsmaster.cfg.dist mfsmaster.cfg
sudo cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
sudo cp mfsexports.cfg.dist mfsexports.cfg

修改主服务器的地址,比如10.197.29.251
sudo vim /etc/mfsmetalogger.cfg

MASTER_HOST = 10.197.29.251

初始化数据文件
cd /var/mfs
sudo cp metadata.mfs.empty metadata.mfs

安装WEB界面支持
sudo yum install mfs-cgi httpd
sudo vim /var/www/html/mfs/index.html

 document.location.href="/cgi-bin/mfs/mfs.cgi"

sudo vim /etc/httpd/conf/httpd.conf

Listen 9480

阅读全文 »

2 Comments