Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6793795
  • 博文数量: 1662
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12554
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1662)

文章存档

2021年(8)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 系统运维

2014-01-07 17:40:55

MooseFS安装教程详解(1)

2012-09-11 15:20 lsanotes.cn  字号: | 
一键收藏,随时查看,分享好友!

下面我们介绍在Linux平台上一步一步安装MooseFS系统的过程,我们假设系统使用mfs用户运行并且mfs的所属组也为mfs。将要使用FHS(文件系统层次标准)兼容路径和源码mfs-1.6.15.tar.gz并且把它放到/usr/src下。我们将要说明怎样安装MooseFS系统在不同的专用机上以及怎样在一台服务器上做一个测试安装。

AD:


前言:

  • MooseFS 在专用机器上的安装过程
  • Master server 的安装
  • Backup server(metalogger)的安装
  • chunk servers 的安装
  • 客户端的安装
  • 单独server上安装MooseFS
  • MooseFS的基本用法
  • 停止MooseFS

概述

下面我们介绍在Linux平台上一步一步安装MooseFS系统的过程,我们假设系统使用mfs用户运行并且mfs的所属组也为mfs。将要使用FHS(文件系统层次标准)兼容路径和源码mfs-1.6.15.tar.gz并且把它放到/usr/src下。我们将要说明怎样安装MooseFS系统在不同的专用机上以及怎样在一台服务器上做一个测试安装。

MooseFS的最新稳定版下载地址:并且在客户端你将需要用到FUSE 包,这个包从以下地址下载:

MooseFS在专用机器上的安装过程,我们假设我们的机器使用以下的IP地址:

		
  1. Master server: 192.168.1.1  
  2. Metalogger server: 192.168.1.2  
  3. Chunk servers: 192.168.1.101 和 192.168.1.102  
  4. Users'computer(客户端): 192.168.2.x 


Master server 安装

当安装master server时我们在./configure禁用chunk server的安装(–disable-mfschunkserver)和客户端的安装(–disable-mfsmount).我们按以下步骤做:

		
  1. #groupadd mfs  
  2. #useradd -g mfs mfs  
  3. #cd /usr/src  
  4. #tar -zxvf mfs-1.6.15.tar.gz  
  5. #cd mfs-1.6.15  
  6. #./configure --prefix=/usr --sysconfdir=/etc  
  7. --localstatedir=/var/lib --with-default-user=mfs 
  8. --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount  
  9. #make  
  10. #make install 

示例配置文件将会建立在/etc下扩展名为.dist,我们使用这些作用我们最终的配置文件:

		
  1. #cd /etc  
  2. #cp mfsmaster.cfg.dist mfsmaster.cfg  
  3. #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg  
  4. #cp mfsexports.cfg.dist mfsexports.cfg 

如何我们想改变任意设置,应该取消该行的注释然后写一个不同的值.对于注释掉的行,系统将使用内置的默认值.

mfsmaster.cfg 文件包含master server的设置,这里我们没有做任何改变,你能在手册页(man mfsmaster.cfg)了解这个文件的更多信息

mfsexports.cfg文件指定哪个客户端可以挂载MooseFS文件系统并且拥有什么权限.在我们的例子中指定仅仅192.168.2.x的机器能读写MooseFS的整个架构.该文件的第一行,并有这行没有注释我们把星号(*)改变为192.168.2.0/24 因此像下面这样:

		
  1. 192.168.2.0/24        /       rw,alldirs,maproot=0 

二进制metadata文件和changelog文本文件存放在一个文件夹,该文件夹是在编译期间localstatedir所设置-在我们的例子中这个文件夹是:/var/lib/mfs.首次安装会建立一个名字为metadata.mfs.empty的空的metadata文件.我们把这个空文件改变成metadata.mfs:

		
  1. #cd /var/lib/mfs  
  2. #cp  metadata.mfs.empty metadata.mfs 

我们也需要在/etc/hosts 指定主机名mfsmaster和主机IP地址192.168.1.1相对应(译者注:为了在配置文件中用主机名mfsmaster代替IP,做了一次简单DNS解析):

		
  1. 192.168.1.1     mfsmaster 

现在可以运行master server(server将要使用安装时给定的用户运行,在我们的实例中它是mfs):

		
  1. #/usr/sbin/mfsmaster start 

在生产环境中应该设置mfsmaster进程在操作系统启动时自动运行

我们现在也可以运行CGI监控在浏览器中查看当前MooseFS系统的状态:

		
  1. #/usr/sbin/mfscgiserv 

现在可以在看到一些信息(暂时还没有关于chunk servers的数据)

Backup server(metalogger) 的安装

用来安装metalogger 的主机,在性能上应该比master 强大(至少有更多的内存)。一旦主控服务器master 失效,只要导入changelogs 到元数据文件,备份服务器metalogger 将能接替发生故障的master,行使管理服务器的职能(关于这个的更多信息可以读)

Metalogger 的安装和master server的安装是非常相似的,我们用以下命令:

		
  1. #groupadd mfs  
  2. #useradd -g mfs mfs  
  3. #cd /usr/src  
  4. #tar -zxvf mfs-1.6.15.tar.gz  
  5. #cd mfs-1.6.15  
  6. #./configure --prefix=/usr --sysconfdir=/etc  
  7. --localstatedir=/var/lib --with-default-user=mfs 
  8. --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount  
  9. #make  
  10. #make install  
  11. #cd /etc  
  12. #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg 

同样,在/etc/hosts添加:

		
  1. 192.168.1.1   mfsmaster 

现在我们准备启动backup server进程:

		
  1. #/usr/sbin/mfsmetalogger start 

在生产环境中你应该设置mfsmetalogger自动启动。


Backup server(metalogger) 的安装

用来安装metalogger 的主机,在性能上应该比master 强大(至少有更多的内存)。一旦主控服务器master 失效,只要导入changelogs 到元数据文件,备份服务器metalogger 将能接替发生故障的master,行使管理服务器的职能(关于这个的更多信息可以读)

Metalogger 的安装和master server的安装是非常相似的,我们用以下命令:

		
  1. #groupadd mfs  
  2. #useradd -g mfs mfs  
  3. #cd /usr/src  
  4. #tar -zxvf mfs-1.6.15.tar.gz  
  5. #cd mfs-1.6.15  
  6. #./configure --prefix=/usr --sysconfdir=/etc  
  7. --localstatedir=/var/lib --with-default-user=mfs 
  8. --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount  
  9. #make  
  10. #make install  
  11. #cd /etc  
  12. #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg 

同样,在/etc/hosts添加:

		
  1. 192.168.1.1   mfsmaster 

现在我们准备启动backup server进程:

		
  1. #/usr/sbin/mfsmetalogger start 

在生产环境中你应该设置mfsmetalogger自动启动。

Chunk servers 的安装

我们用以下的命令在准备去安装chunk server的机器上:

		
  1. #groupadd mfs  
  2. #useradd -g mfs mfs  
  3. #cd /usr/src  
  4. #tar -zxvf mfs-1.6.15.tar.gz  
  5. #cd mfs-1.6.15  
  6. #./configure --prefix=/usr --sysconfdir=/etc  
  7. --localstatedir=/var/lib --with-default-user=mfs 
  8. --with-default-group=mfs --disable-mfsmaster  
  9. #make  
  10. #make install 

现在我们同样准备chunk server的配置文件:

		
  1. #cd /etc/  
  2. #cp  mfschunkserver.cfg.dist mfschunkserver.cfg  
  3. #cp  mfshdd.cfg.dist mfshdd.cfg 

因为我们的测试安装我们没有对mfschunkserver.cfg做任何改变;你能在手册页(man mfschunkserver.cfg)了解这个文件的更多信息。

在mfshdd.cfg文件我们指定具体位置,该位置已经被挂载在硬盘的根(/)分区,建议他们专门用于MooseFS-这是要适当管理空闲空间。

让我们假设将要使用/mnt/mfschunks1 和 /mnt/mfschunks2,因此我们添加这两行到mfshadd.cfg文件:

		
  1. /mnt/mfschunks1  
  2. /mnt/mfschunks2 

在开始运行chunk server之前我们需要确认用户mfs有写权限在这挂载的分区上(因为需要在这分区上建立.lock文件):

		
  1. #chown -R mfs:mfs /mnt/mfschunks1  
  2. #chown -R mfs:mfs /mnt/mfschunks2 

同样我们添加下面这行在/etc/hosts:

		
  1. 192.168.1.1     mfsmaster 

现在我们准备去开始chunk server:

		
  1. #/usr/sbin/mfschunkserver start 

在MooseFS系统中,我们在想要存储数据的每一个chunk server 上重复同样的操作。

现在在可以看到系统的全部信息,包括master server和chunk server。


客户端的安装

为了挂载基于MooseFS的文件系统,需要客户端安装FUSE包(版本至少是2.6,推荐>=2.7.2),如果FUSE不存在,你必须去安装它.一种方法是从源码编译它-你能从这个网址得到它

		
  1. #cd /usr/src  
  2. #tar -zxvf fuse-2.8.3.tar.gz  
  3. #cd fuse-2.8.3  
  4. #./configure  
  5. #make  
  6. #make install 

安装mfsmount包我做以下步骤:

		
  1. #tar -zxvf mfs-1.6.15.tar.gz  
  2. #cd mfs-1.6.15  
  3. #./configure --prefix=/usr --sysconfdir=/etc  
  4. --localstatedir=/var/lib --with-default-user=mfs 
  5. --with-default-group=mfs --disable-mfsmaster  
  6. --disable-mfschunkserver  
  7. #make  
  8. #make install 

在/etc/hosts文件添加一行:

		
  1. 192.168.1.1   mfsmaster 

在客户端机器上假设我们挂载文件系统在/mnt/mfs文件夹.我们使用以下命令:

		
  1. #mkdir -p /mnt/mfs  
  2. #/usr/bin/mfsmount /mnt/mfs -H mfsmaster 

现在我们执行df -h | grep mfs 命令以后可以得到类似以下这个信息:

		
  1. /storage/mfschunks/mfschunks1  
  2. 2.0G   69M  1.9G   4% /mnt/mfschunks1  
  3. /storage/mfschunks/mfschunks2  
  4. 2.0G   69M  1.9G   4% /mnt/mfschunks2  
  5. mfs#mfsmaster:9421    3.2G     0  3.2G   0% /mnt/mfs 

单独server上安装MooseFS

如果你想在单独一台机器上测试安装MooseFS系统,你可以按照以下步骤,在这我们不安装metalogger,假设server的IP地址为192.168.1.1

为了挂载基于MooseFS的文件系统,需要客户端安装FUSE包(版本至少是2.6,推荐>=2.7.2),如果FUSE不存在,你必须去安装它.一种方法是从源码编译它。

		
  1. #cd /usr/src  
  2. #tar -zxvf fuse-2.8.3.tar.gz  
  3. #cd fuse-2.8.3  
  4. #./configure  
  5. #make  
  6. #make install 

安装MooseFS:

		
  1. #groupadd mfs  
  2. #useradd -g mfs mfs  
  3. #cd /usr/src  
  4. #tar -zxvf mfs-1.6.15.tar.gz  
  5. #cd mfs-1.6.15  
  6. #./configure --prefix=/usr --sysconfdir=/etc  
  7. --localstatedir=/var/lib --with-default-user=mfs 
  8. --with-default-group=mfs 
  9. #make  
  10. #make install 

重要的是最好文件系统能被MooseFS chunks独享,这样能很好的管理空闲空间,MooseFS没有考虑这样的情形:对于MooseFS可用的空闲空间也能被其他数据使用。如果不能建立一个单独的磁盘分区,用文件虚拟一个文件系统,对于这个测试安装的需要,我们准备两个2GB的文件(位置在/storage/mfschunks),格式化为ext3格式,并且分别挂载在 /mnt/mfschunks1 和 /mnt/mfschunks2。

		
  1. #mkdir -p /storage/mfschunks  
  2. #dd if=/dev/zero of=/storage/mfschunks/mfschunks1 bs=1024 count=1 
  3. seek=$((2*1024*1024-1))  
  4. #mkfs -t ext3 /storage/mfschunks/mfschunks1  
  5. #mkdir -p /mnt/mfschunks1  
  6. #mount -t ext3 -o loop /storage/mfschunks/mfschunks1 /mnt/mfschunks1  
  7. #dd if=/dev/zero of=/storage/mfschunks/mfschunks2 bs=1024 count=1 
  8. seek=$((2*1024*1024-1))  
  9. #mkfs -t ext3 /storage/mfschunks/mfschunks2  
  10. #mkdir -p /mnt/mfschunks2  
  11. #mount -t ext3 -o loop /storage/mfschunks/mfschunks2 /mnt/mfschunks2 

在开始运行chunk server之前我们需要确认用户mfs有写权限在这挂载的分区上(因为需要在这分区上建立.lock文件):

		
  1. #chown -R mfs:mfs /mnt/mfschunks1  
  2. #chown -R mfs:mfs /mnt/mfschunks2 

示例配置文件将会建立在/etc下扩展名为.dist,我们使用这些作用我们最终的配置文件:

		
  1. #cd /etc  
  2. #cp mfsexports.cfg.dist mfsexports.cfg  
  3. #cp mfsmaster.cfg.dist mfsmaster.cfg  
  4. #cp mfschunkserver.cfg.dist mfschunkserver.cfg  
  5. #cp mfshdd.cfg.dist mfshdd.cfg 

mfsexports.cfg文件和mfsmaster.cfg 涉及master server的设置,mfschunkserver.cfg和mfshdd.cfg文件涉及chunk server的设置,mfsexports.cfg文件指定哪个客户端可以挂载MooseFS文件系统并且拥有什么权限。在我们的例子中指定仅仅192.168.1.x的机器能读写MooseFS的整个架构,该文件的第一行,并有这行没有注释我们把星号(*)改变为192.168.1.0/24 因此像下面这样:

		
  1. 192.168.1.0/24            /    rw,alldirs,maproot=0 

在我们的示例中mfsmaster.cfg和mfschunkserver.cfg文件中的选项没有做任何改变

二进制metadata文件和changelog文本文件存放在一个文件夹,该文件夹是在编译期间localstatedir所设置-在我们的例子中这个文件夹是:/var/lib/mfs.首次安装会建立一个名字为metadata.mfs.empty的空的metadata文件.我们把这个空文件改变为metadata.mfs:

		
  1. #cd /var/lib/mfs  
  2. #cp  metadata.mfs.empty metadata.mfs 

也把下面一行添加到/etc/hosts:

		
  1. 192.168.1.1   mfsmaster 

此时可以运行master server,CGI monitor和chunk server的进程:

		
  1. #/usr/sbin/mfsmaster start  
  2. #/usr/sbin/mfscgiserv  
  3. #/usr/sbin/mfschunkserver start 

可以在看到关于MooseFS系统当前状态的所有信息

现在挂载系统到/mnt/mfs:

		
  1. #mkdir -p /mnt/mfs  
  2. #/usr/bin/mfsmount /mnt/mfs -H mfsmaster 

执行df -h | grep mfs 命令以后,我们可以看到类似下面的信息:

		
  1. /storage/mfschunks/mfschunks1  
  2. 2.0G   69M  1.9G   4% /mnt/mfschunks1  
  3. /storage/mfschunks/mfschunks2  
  4. 2.0G   69M  1.9G   4% /mnt/mfschunks2  
  5. mfs#mfsmaster:9421    3.2G     0  3.2G   0% /mnt/mfs 

MooseFS的基本用法

在/mnt/mfs下建立folder1,在这个文件夹存储的文件有一个副本(setting goal=1):

		
  1. mkdir -p /mnt/mfs/folder1 

建立folder2,在这个文件夹下存储的文件有两个副本(setting goal=2):

		
  1. mkdir -p /mnt/mfs/folder2 

mfssetglal -r 命令设置文件夹的副本数:

		
  1. #mfssetgoal -r 1 /mnt/mfs/folder1  
  2. /mnt/mfs/folder1:  
  3. inodes with goal changed:                         0  
  4. inodes with goal not changed:                     1  
  5. inodes with permission denied: 
		
  1. #mfssetgoal -r 2 /mnt/mfs/folder2  
  2. /mnt/mfs/folder2:  
  3. inodes with goal changed:                         0  
  4. inodes with goal not changed:                     1  
  5. inodes with permission denied:                    0 

复制一个文件到这两个文件夹:

		
  1. cp /usr/src/mfs-1.6.15.tar.gz /mnt/mfs/folder1  
  2. cp /usr/src/mfs-1.6.15.tar.gz /mnt/mfs/folder2 

mfscheckfile 命令检查指定文件存储了几份副本

foler1有一个副本存储在一个chuk:

		
  1. #mfscheckfile /mnt/mfs/folder1/mfs-1.6.15.tar.gz  
  2. /mnt/mfs/folder1/mfs-1.6.15.tar.gz:  
  3. 1 copies: 1 chunks 

在foler2的文件mfs-1.6.15.tar.gz 保存两份副本:

		
  1. #mfscheckfile /mnt/mfs/folder2/mfs-1.6.15.tar.gz  
  2. /mnt/mfs/folder2/mfs-1.6.15.tar.gz:  
  3. 2 copies: 1 chunks 

附加说明.当所有的进程安装在单独的服务器上时,你会看到文件仅仅保存一个副本甚至在设置goal=2时-这是正确的因为尽管有两个硬盘但是只有一个chunk server。

停止MooseFS

按以下步骤安全停止MooseFS集群:

在所有机器上用umount命令卸载文件系统(在我们的示例中是:umount /mnt/mfs):

		
  1. 停止chunk server进程: /usr/sbin/mfschunkserver stop  
  2. 停止metalogger进程: /usr/sbin/mfsmetalogger stop  
  3. 停止master server进程: /usr/sbin/mfsmaster stop 


【编辑推荐】

  1. CentOS如何安装MooseFS技术实战
  2. MooseFS的简介、部署及应用
  3. Moosefs基本概念总结
  4. MooseFS维护技巧集锦

阅读(831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~