【LizardFS】的安装使用

MooseFS在今年推出了v2.0版本,分为社区版本和专业版本,不过和v1版本相比较,增强了一些功能特性( quotas, extended attributes, ACL support, MFS CLI tool, better memory management.)目前可以通过v1版本进行源代码的研究分析,最新的是v1.6.27-5。国内百度有基于MooseFS的深度二次开发,叫Shadow-MFS(https://github.com/ops-baidu/shadow-mfs)。

而我近日发现了一个国外的一个基于MooseFS的分支版本,叫做LizardFS(http://lizardfs.com/),代码也有放在Github上。在实际安装使用后,感觉还是不错的。MooseFS v2.0的CE版本中加入的一些特性,其实在LizardFS里也有得到了支持。这里主要介绍下自己从MooseFS升级到LizardFS的一些实际操作经历,供大家参考。

一、LizardFS介绍

LizardFS是MooseFS的一个分支版本
官网:http://lizardfs.com
Github源镜像:https://github.com/lizardfs/lizardfs

主要增加了以下这些功能:

  • High availability //提供shadow master功能
  • Quotas //磁盘配额管理
  • POSIX Access Control Lists
  • POSIX Extended Attributes
  • I/O bandwidth limiting //限制带宽
  • Command line monitoring tool //命令行的监控查询方式
  • High performance CRC checksum implementation
  • Reduced overhead of hourly metadata backups
最主要的HA方面是通过提供shadow master功能,可以在线手动切换成master,与MooseFS的结构相比,大致就是多了Shadow master的这个新的角色示。
Shadow master可以定期自动从master那获取changelog,metadata和sessions等数据。

二、LizardFS升级安装

我是直接从原先的MooseFS  v1.6.27-5升级到LizardFS v2.5.1,系统环境是Redhat EL 6.5 x86_64。

1. 下载安装包
LizardFS v2.5.0源码包:https://github.com/lizardfs/lizardfs/archive/v2.5.0.tar.gz
Git源:https://github.com/lizardfs/lizardfs.git

2. 准备工作
升级gcc到v4.8.1(需要支持c++11):
tar xvf gcc-4.8.1.tar.bz2
cd gcc-4.8.1
./contrib/download_prerequisites
cd ..
mkdir build_gcc-4.8.1
cd build_gcc-4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j16
make install
cd ..
rm -rf build_gcc-4.8.1 gcc-4.8.1 gcc-4.8.1.tar.gz

mv /usr/bin/c++ /usr/bin/c++-4.4.7
update-alternatives --install /usr/bin/c++ c++ /usr/local/bin/c++ 40
mv /usr/bin/g++ /usr/bin/g++-4.4.7
update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 40
mv /usr/bin/gcc /usr/bin/gcc-4.4.7
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 40

卸载Boost v1.41旧版本
yum remove boost-devel-1.41.0-18.el6.x86_64 
以下操作可选:用于安装新版本boost
yum install p7zip
7za x boost_1_56_0.7z
cd boost_1_56_0
./bootstrap.sh
./bjam
./bjam install
ln -s /usr/local/include/boost /usr/include/boost


3. 安装LizardFS

我使用最新的开发版代码,稳定版本可以使用v2.5
git clone https://github.com/lizardfs/lizardfs.git
cd lizardfs
./configure

注意:
如果只使用正常的fuse功能挂载,就可以忽略这里缺少Polonaise和Thrift等的提示。可以直接下一步make看能否通过。

make
make install


为了能够运行lizardfs,需要使用到libstdc++.so.6的高版本,所以做了链接:
cp /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/
rm /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

至此,已经顺利从MooseFS升级到了LizardFS,完全可以按照以前的MooseFS的使用方式操作。

三、LizardFS新功能使用
1. Shadow master
先对/etc/mfs/mfsmaster.cfg进行配置
设置PERSONALITY = shadow //指定master属性为shadow master
从master服务器那获得现有mfsexports.cfg
然后启动mfsmaster

备注:
可以有多个shadow master服务器运行,同时可以与metalogger server,chunk server都部署在同一台物理服务器上。在监控页面上可以看到shadow master与metalogger server都是列在Metadata Backup列表上。

Master出故障掉线后的处理:
a) 将shadow master上的IP改为master的IP
b) 修改mfsmaster.cfg中的PERSONALITY为master
c) mfsmaster reload重载配置
d) 修复master的工作:
修改mfsmaster.cfg中的PERSONALITY为shadow
mfsmetarestore -a 用于清除metadata.mfs.lock
启动mfsmaster作为shadow

2. 磁盘配额管理
提供工具:mfssetquota, mfsrepquota

3. 带宽限制
增加了master上的配置文件(/etc/mfs/)用于限制全局和本地节点的流量带宽,似乎是通过cgroups来实现的。
功能启用,需要在mfsmaster.cfg中加入GLOBALIOLIMITS_*方面的设置,例如:
GLOBALIOLIMITS_FILENAME = /etc/mfs/globaliolimits.cfg
GLOBALIOLIMITS_RENEGOTIATION_PERIOD_SECONDS = 0.1
GLOBALIOLIMITS_ACCUMULATE_MS = 250
然后分别设置设置全局和本地的配置文件globaliolimits和iolimits.cfg

4 监控工具lizardfs-probe
通过在终端下运行命令行,从master获取信息,包括整个系统的统计信息,chunk server的信息,等等。比较简单,直接看帮助即可

龙蜥(LizardFS)是一个开源的分布式文件系统,它提供了高可用性、可扩展性和容错性。它的设计目标是为了解决大规模数据存储和处理的需求。 关于龙蜥的Docker安装,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Docker和Docker Compose。如果没有安装,你可以根据你的操作系统类型,参考Docker官方文档进行安装。 2. 创建一个新的目录,用于存放龙蜥的配置文件和数据。例如,你可以在主机上创建一个名为lizardfs的目录。 3. 在lizardfs目录下创建一个名为docker-compose.yml的文件,并将以下内容复制到文件中: ``` version: '3' services: master: image: lizardfs/lizardfs-master volumes: - ./master:/var/lib/lizardfs ports: - 9419:9419 restart: always chunkserver: image: lizardfs/lizardfs-chunkserver volumes: - ./chunkserver:/var/lib/lizardfs ports: - 9422:9422 restart: always metalogger: image: lizardfs/lizardfs-metalogger volumes: - ./metalogger:/var/lib/lizardfs ports: - 9423:9423 restart: always ``` 4. 保存并关闭docker-compose.yml文件。 5. 打开终端,进入到lizardfs目录,并运行以下命令启动龙蜥容器: ``` docker-compose up -d ``` 6. 等待一段时间,直到容器启动完成。你可以使用以下命令检查容器的状态: ``` docker-compose ps ``` 如果所有的容器都处于运行状态,则表示安装成功。 现在,你已经成功安装了龙蜥的Docker版本。你可以通过访问http://localhost:9419来访问龙蜥的Web管理界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值