本实验环境均为centos6.8
1,拓扑图如下
computer_name | ip |
nginx | 192.168.153.128/24 |
tracker01 | 192.168.153.129/24 |
tracker02 | 192.168.153.130/24 |
mogstored01 | 192.168.153.131/24 |
mogstored02 | 192.168.153.132/24 |
mogstored03 | 192.168.153.133/24 |
1,先安装并配置tracker
tracker是需要数据库来进行存储文件的元数据及其位置信息,两个tracker公用一个数据库,本来是通过MHA来实现高可用数据存储的,但是为了简洁,就把数据库放到tracker01上了,在生产环境中千万不要这么做
1,安装tracker相关的程序(192.168.153.129,192.168.153.130)除了mysql之外,其他的两台tracker配置都一样
yum install -y /share/mogilefs/MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm
yum install /share/mogilefs/perl-Perlbal-1.78-1.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/perl-Net-Netmask-1.9015-8.el6.noarch.rpm -y
yum install /share/mogilefs/perl-MogileFS-Client-1.14-1.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Utils-2.19-1.el6.noarch.rpm -y
yum install mysql-server -y
2,配置tracker01
a,先修改数据库配置信息并启动数据库
vim /etc/my.cnf
# 内如如下
#在[mysqld]下面添加如下两行代码
skip_name_resolve
innodb_file_per_table=ON
service mysqld start
b,初始化数据库,并进行授权
mysql>grant all on mogdb.* to "moguser"@"192.168.153.%" identified by "mogpass";
mysql>flush privileges;
c,通过命令生产表
mogdbsetup --dbname=mogdb --dbuser=moguser --dbpass=mogpass
d,修改配置文件
vim /etc/mogilefs/mogilefsd.conf
#内容如下
# Database connection information
db_dsn = DBI:mysql:mogdb:host=192.168.153.129
db_user = moguser
db_pass = mogpass
# IP:PORT to listen on for mogilefs client requests
listen = 192.168.153.129:7001
e,启动mogilefs
service mogilefsd start
配置tracker01
a,先安装程序包,和tracker01一样(mysql 包不要安装了)
b,将tracker01的配置文件直接复制一份到本机就可以了
scp /etc/mogilefs/mogilefsd.conf 192.168.153.130:/etc/mogilefs/
c,修改tracker监听ip
d,保存并启动服务
2,安装并配置mogstored
1,先配置mogstored01
先安装程序包
yum install -y /share/mogilefs/MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm
yum install /share/mogilefs/perl-Perlbal-1.78-1.el6.noarch.rpm perl-IO-AIO -y
yum install /share/mogilefs/MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-2.46-2.el6.noarch.rpm -y
a, 创建存储所需的目录(这些目录是要挂载不同的磁盘的,现在用目录来进行模拟)
mkdir /data/mogstored/dev{1,2,3} -pv #在stored01执行该命令
mkdir /data/mogstored/dev{4,5,6} -pv #在stored02执行该命令
mkdir /data/mogstored/dev{7,8,9} -pv #在stored03执行该命令
b,在所有存储节点授权目录权限
chown -R mogilefs:mogilefs /data/mogstored/
c,编辑mogstored的配置文件
vim /etc/mogilefs/mogstored.conf
# 内容如下
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /data/mogstored #三个存储节点都一样,存储的目录
d,保存配置并启动服务
service mogstored start
在tracker01上配置存储信息
1,先自定义一个配置文件,方便mogadm命令调用
cd && vim .mogilefs.conf
# 内容如下
db_dsn=DBI:mysql:mogdb:host=192.168.153.129
db_user=moguser
db_pass=mogpass
trackers = 192.168.153.129:7001, 192.168.153.130:7001
2,添加节点
mogadm host add storage01 --ip=192.168.153.131 --port=7500 --status=alive
mogadm host add storage02 --ip=192.168.153.132 --port=7500 --status=alive
mogadm host add storage03 --ip=192.168.153.133 --port=7500 --status=alive
3,添加设备(总共新建了九个目录,都要添加进来)
mogadm device add storage01 1
mogadm device add storage01 2
mogadm device add storage01 3
mogadm device add storage02 4
mogadm device add storage02 5
mogadm device add storage02 6
mogadm device add storage03 7
mogadm device add storage03 8
mogadm device add storage03 9
4,新建一个域,用来存放文件
mogadm domain add files
5,先上传一个文件测试一下
mogupload --domain=files --key='fstab.txt' --file='/etc/fstab'
6,查看该文件的信息
mogfileinfo --domain=files --key='fstab.txt'
7,在浏览器中输入其中一个地址访问
8,下载到本地
mogfetch --domain=files --key='fstab.txt' --file='/root/fstab'
3,通过nginx 反向代理mogilefs
nginx默认没有mogilefs的支持模块,需要自行编译安装
模块的网页Nginx mogilefs module (v 1.0.4)
1,先安装编译环境
yum install gcc gcc-c++ openssl-devel pcre-devel -y
2,准备nginx和nginx_mogilefs_module的源码包
3,解压并编译
tar -xvf /share/mogilefs/nginx_mogilefs_module-1.0.4.tar.gz -C /root/
tar -xvf /share/mogilefs/nginx-1.8.0.tar.gz -C /root/
cd /root/nginx-1.8.0/
4,开始编译nginx
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock \
--user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre \
--add-module=/root/nginx_mogilefs_module-1.0.4 --with-http_dav_module
make && make install
5,配置nginx的环境变量
vim /etc/profile.d/nginx.sh
#添加内容
export PATH=/usr/local/nginx/sbin:$PATH
6,重读环境变量
. /etc/profile.d/nginx.sh
7,编辑nginx的配置文件
cd /etc/nginx/
cp nginx.conf{,.bak}
vim nginx.conf
在http内容下面添加
upstream mogtrackers {
server 192.168.153.129:7001;
server 192.168.153.130:7001;
}
在server中添加如下
location /files/ {
mogilefs_tracker mogtrackers;
mogilefs_domain files;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
保存退出
8,检查配置文件
9,启动nginx服务
10,在web端访问测试输入key值进行访问
11,上传一张图片测试一下
mogupload --domain=files --key='a.jpg' --file='/usr/share/backgrounds/centos_1920x1200_logoonly.jpg'