实验环境:
Centos6.4-x86_64
172.16.4.12 tracker
172.16.4.7 mogstore
172.16.4.1 mogstore
MogileFS是一套高效的文件自动备份组件,用于组建分布式文件集群,适合存储海量小文件,用户上传的文件在storage上并且默认会存储在两个节点上,当其中一个down时,会自动往其他节点复制一份
一、配置tracker节点
安装mysql,为了方便管理,我们将mysql挂载在逻辑卷
mysql-5.5.33-linux2.6-x86_64.tar.gz
1:创建逻辑卷并挂载
创建磁盘分区
#fdisk /dev/sda
创建物理分区
#pvcreate /dev/sda{3,5}
创建卷组为myvg
#vgcreate myvg /dev/sda{3,5}
创建逻辑卷mydata
#lvcreate -L 20G -n mydata myv
对其进行格式化
#mke2fs -t ext4 -L MYDATA -b 2048 /dev/myvg/mydata
进行挂载
#mkdir /mydata
#mount -a
要使得能够开机自动挂载,需要编辑配置文件/etc/fstab
LABEL=MYDATA /mydata ext4 defaults 0 0
在/mydata下创建data目录
#mkdir /mydata/data
2:解压安装
添加系统用户mysql
#useradd -r mysql
修改属主和属组
#chown -R mysql:mysql /mydata/data
解压文件
#tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local
#cd /usr/local/
#ln -sv mysql-5.5.33-linux2.6-x86_64 mysql
#chown -R root:mysql /usr/local/mysql/*
#cd mysql/support-files有样例,我们可以根据自己的需要选择
将选择的文件复制一份到/etc/目录下并修改文件名为my.cnf
#cp my-large.cnf /etc/my.cnf
3:修改配置文件
# vim /etc/my.cnf
找到相关设置进行修改操作
thread_concurrency = 4并发核心数, 如果物理核心为2,这里就可以填写4
datadir = /mydata/data
innodb_file_per_table = 1 每表一个表空间
服务脚本
#cp mysql.server /etc/rc.d/init.d/mysqld
#chmod +x /etc/rc.d/init.d/mysqld
进行初始化
#cd /usr/local/mysql/
#scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
添加mysql服务
#chkconfig --add mysqld
#chkconfig mysqld on
启动服务
#service mysqld start
安装mogilefs
MogileFS-Server.noarch 0:2.46-2.el6
MogileFS-Server-mogilefsd.noarch 0:2.46-2.el6
MogileFS-Server-mogstored.noarch 0:2.46-2.el6
MogileFS-Utils.noarch 0:2.19-1.el6
perl-MogileFS-Client.noarch 0:1.14-1.el6
perl-Net-Netmask.noarch 0:1.9015-8.el6
perl-Perlbal.noarch 0:1.78-1.el6
配置文件/etc/mogilefs
# mogdbsetup -h 获取帮助
mysql> grant all on mogilefs.* to 'moguser'@'%' identified by 'mogpass';
mysql> flush privileges;
初始化数据库
# mogdbsetup --dbhost=172.16.4.12 --dbrootpass=mypass --dbuser=moguser --dbpass=mogpass查看数据库
数据库初始化成功
编辑配置文件
#vim /etc/mogilefs/mogilefsd.conf
pidfile = /var/run/mogilefsd/mogilefsd.pid 源码包安装需要创建目录并且属主属组为mogilefsd
db_dsn = DBI:mysql:mogilefs:host=172.16..4.12
db_user = moguser
db_pass = mogpass
listen = 0.0.0.0:7001
# service mogilefsd start 启动服务
二、配置存储节点文件mogstore
MogileFS-Server-2.46-2.el6.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm
MogileFS-Utils-2.19-1.el6.noarch.rpm
perl-IO-AIO-3.71-2.el6.x86_64.rpm
perl-MogileFS-Client-1.14-1.el6.noarch.rpm
perl-Net-Netmask-1.9015-8.el6.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm
#yum -y --nogpgcheck localinstall *.rpm
#mkdir /mogdata/dev1 -pv
# chown -R mogilefs:mogilefs /mogdata/dev1/
# vim /etc/mogilefs/mogstored.conf 编辑配置文件
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /mogdata
# service mogstored start 启动服务
接着配置tracker节点
# mogadm check 检查当前所有节点健康状况
Checking trackers...
127.0.0.1:7001 ... OK
Checking hosts...
No devices found on tracker(s)
#mogadm host list 查看mogstore节点
#mogadm host add -h 查看添加mogstore节点的帮助
# mogadm host add server1 --ip=172.16.4.7 --status=alive
添加存储空间
# mogadm device add server1 1
#mogadm check
Checking trackers...
127.0.0.1:7001 ... OK
Checking hosts...
[ 1] server1 ... OK
Checking devices...
host device size(G) used(G) free(G) use% ob state I/O%
---- ------------ ---------- ---------- ---------- ------ ---------- -----
[ 1] dev1 18.686 0.523 18.163 2.80% writeable 5.0
---- ------------ ---------- ---------- ---------- ------
total: 18.686 0.523 18.163 2.80%
在这里,我们上传文件验证我们的配置
# mogupload 上传文件
Usage: /usr/bin/mogupload --trackers=host --domain=foo --key='/hello.jpg' --file='./hello.jpg'
创建domain
# mogadm domain add files
#mogupload --trackers=172.16.4.12 --domain=files --key='/etc/fstab' --file='/etc/fstab'
查看上传的文件信息
# mogfileinfo --trackers=172.16.4.12 --domain=files --key='/etc/fstab'
/etc/fstab'
- file: /etc/fstab
class: default
devcount: 1
domain: files
fid: 2
key: /etc/fstab
length: 921
- http://172.16.4.7:7500/dev1/0/000/000/0000000002.fid
配置另一个mogstore节点
和前面的配置相同,配置完成后启动服务
#service mogstored start
#ss -tanl 确保7500、7501端口打开
接着回到tracker节点
添加mogstorge节点和存储空间
模拟一个节点down
# mogadm host mark server1 down
重新启用节点
# mogadm host mark server1 alive
到这里,所有配置完成了,在具体工作环境中应用要多一些mogstore节点,以实现服务不会因为某个节点出现故障而中断服务