系统环境
主机 操作系统 ip地址 软件包
master centos7.4 192.168.80.100 mfs
metalogger centos7.4 192.168.80.101 mfs
chunk01 centos7.4 192.168.80.102 mfs
chunk02 centos7.4 192.168.80.103 mfs
chunk03 centos7.4 192.168.80.104 mfs
client centos7.4 192.168.80.105 mfs、fuse
搭建master server:(IP地址:192.168.80.102)
1、安装相关编译器、工具包
yum install gcc gcc-c++ make zlib-devel -y
2、创建进程用户
useradd -s /sbin/nologin mfs
3、安装mfs软件包
tar xf mfs~ -C /opt
cd /opt/mfs~
./configure --prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfschunkserver
–disable-mfsmount
make && make install #编译及编译安装
4、修改相关文件信息
cd /usr/local/mfs/etc/mfs
cp mfsexports.cfg. sample mfsexports.cfg
cp mfsmaster.cfg. sample mfsmaster.cfg
cp mfstopology.cfg. sample mfstopology.cfg
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs #master元数据文件
5、详解主配置文件
cd /usr/local/mfs/etc/mfs/
vi mfsmaster.cfg
#WORKING_USER = mfs #运行master服务的用户
#WORKING_GROUP = mfs #运行master服务的组
#SYSLOG_IDENT = mfsmaster #在syslog中表示是mfsmaster产生的日志,在syslog的标识,说明由master服务产生的
#LOCK_MEMORY = 0 #是否执行mlockall(),避免master进程溢出(默认为0)
#NICE_LEVEL = -19 #运行的优先级(如果可以,默认是-19;注意进程必须是root启动)
#EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg #被挂载目录及其权限控制文件的存放位置
#TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg
#DATA_PATH = /usr/local/mfs/var/mfs #数据存放位置
#BACK_LOGS = 50 #metadata改变的log文件数目(默认是50)
#BACK_META_KEEP_PREVIOUS = 1
#REPLICATIONS_DELAY_INIT = 300
#REPLICATIONS_DELAY_DISCONNECT = 3600
#MATOML_LISTEN_HOST = * #metalogger监听的IP地址(默认是*,代表任何IP)
#MATOML_LISTEN_PORT = 9419 #metalogger监听的端口地址(默认是9419)
#MATOML_LOG_PRESERVE_SECONDS = 600
#MATOCS_LISTEN_HOST = * #用于chunkserver连接的IP地址(默认是*,代表任何IP)
#MATOCS_LISTEN_PORT = 9420 #用于chunkserver连接的端口IP地址(默认是9420)
#MATOCL_LISTEN_HOST = *
#MATOCL_LISTEN_PORT = 9421
#CHUNKS_LOOP_MAX_CPS = 100000
#CHUNKS_LOOP_MIN_TIME = 300 #chunks的回环频率(默认是300秒)
#CHUNKS_SOFT_DEL_LIMIT = 10
#CHUNKS_HARD_DEL_LIMIT = 25
#CHUNKS_WRITE_REP_LIMIT = 2 #在一个循环里复制到一个chunkserver的最大chunk数
#CHUNKS_READ_REP_LIMIT = 10 #在一个循环里从一个chunkserver复制的最大chunk数
#ACCEPTABLE_DIFFERENCE = 0.1
#SESSION_SUSTAIN_TIME = 86400
#REJECT_OLD_CLIENTS = 0
#deprecated:
#CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead
#LOCK_FILE - lock system has been changed, and this option is used only to search for old lockfile
6、详解被挂载目录及权限配置文件
cd /usr/local/mfs/etc/mfs/
vi mfsexports.cfg
#Allow everything but “meta”.
/ rw,alldirs,maproot=0
#Allow “meta”.
. rw
7、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
8、启动服务
mfsmaster start
netstat -anpt | grep ‘mfs’
9、编辑启动脚本
vi /lib/systemd/system/mfs.service
[Unit]
Description=mfs
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mfs/sbin/mfsmaster start
ExecStop=/usr/local/mfs/sbin/mfsmaster stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl enable mfs.service
systemctl stop mfs.service
systemctl start mfs.service #启动服务
二、搭建MetaLogger Server(IP地址:192.168.80.103)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel
2、创建进程用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs
3、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfschunkserver
–disable-mfsmount
make && make install
4、修改主配置文件
cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
cd /usr/local/mfs/var/mfs
mv metadata.mfs.empty metadata.mfs
cd /usr/local/mfs/etc/mfs/
vi mfsmetalogger.cfg
修改以下内容:
MASTER_HOST = 192.168.80.102 #执行master服务器的ip地址,去掉注释符号
5、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
6、启动服务
mfsmetalogger start
netstat -anpt | grep mfsmetalogger
三、搭建Chunk Server(两台Chunk Server主机搭建步骤相同,IP地址是192.168.80.104、192.168.80.106)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel
2、创建程序用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs
3、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfsmaster
–disable-mfsmount
make && make install
4、修改相应配置文件
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
vi mfschunkserver.cfg
修改以下内容:
MASTER_HOST = 192.168.80.102 #指向master服务器的ip地址,去掉注释符号
vi mfshdd.cfg
添加一行:
/data #这是一个给MFS的分区,生产环境中最好使用独立的分区,或者磁盘挂载到此目录下
5、创建MFS分区目录
mkdir /data
chown -R mfs:mfs /data/
6、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
7、启动服务
mfschunkserver start
netstat -anpt | grep ‘mfschunkserver’ #看9422 端口是否在工作
四、配置客户端(在LNMP上,IP地址:192.168.80.100)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel
2、安装fuse软件包
tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make && make install
3、设置环境变量
vi /etc/profile
末行添加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile #重新加载系统环境变量配置文件
4、创建进程用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs
5、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfsmaster
–disable-mfschunkserver
–enable-mfsmount
make && make install
6、挂载MFS文件系统
mkdir /var/www/aa/mfs #创建挂载点,挂载到PHP的目录下,主要看你nginx的配置文件中php的路径是什么。
modprobe fuse #加载fuse模块到内核
/usr/local/mfs/bin/mfsmount /var/www/aa/mfs/ -H 192.168.80.102 #挂载MFS
df -h #查看挂载情况
7、master开启web监控服务
mfscgiserv start
8、访问MFS监控工具
http://192.168.80.102:9425/mfs.cgi #client端访问web,查看MFS有没有配置成功。
搭建LNMP并配置PHP:
service firewalld stop
systemctl disable firewalld
yum -y install
pcre-devel
zlib-devel
useradd -M -s /sbin/nologin nginx
tar xzvf nginx-1.15.5.tar.gz -C /opt/
cd /opt/nginx-1.15.5
./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t //配置文件语法检查
nginx //启动服务
-------制作管理角本--------
vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case “$1” in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo “Usage: $0 {start|stop|restart|reload}”
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx
vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;
error_log logs/error.log info;
安装MYSQL数据库:
yum -y install
ncurses
ncurses-devel
bison
cmake
useradd -s /sbin/nologin mysql
tar xf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=boost
-DWITH_SYSTEMD=1
make && make install
chown -R mysql.mysql /usr/local/mysql/ 也可mysql:mysql
vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf
echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile
echo ‘export PATH’ >> /etc/profile
source /etc/profile
cd /usr/local/mysql/
bin/mysqld
–initialize-insecure
–user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
netstat -anpt | grep 3306
systemctl enable mysqld
配置PHP
yum -y install
libjpeg
libjpeg-devel
libpng libpng-devel
freetype freetype-devel
libxml2
libxml2-devel
zlib zlib-devel
curl curl-devel
openssl openssl-devel
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure
–prefix=/usr/local/php
–with-mysql-sock=/usr/local/mysql/mysql.sock
–with-mysqli
–with-zlib
–with-curl
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–with-openssl
–enable-mbstring
–enable-xml
–enable-session
–enable-ftp
–enable-pdo
–enable-tokenizer
–enable-zip
–enable-fpm
make && make install
cp php.ini-development /usr/local/php/lib/php.ini 若lib不存在,需要重新./configure
vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
/usr/local/php/bin/php -m //验证安装的模块
-----------配置及优化FPM模块--------
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
cd /usr/local/php/etc/
vi php-fpm.conf
pid = run/php-fpm.pid
;user = nginx
;group = nginx
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
netstat -anpt | grep 9000
ln -s /usr/local/php/bin/* /usr/local/bin/
ps aux | grep -c “php-fpm” //结果
-----更新启动脚本----------
vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/php/sbin/php-fpm"
PIDF_FPM="/usr/local/php/var/run/php-fpm.pid"
case “$1” in
start)
$PROG
$PROG_FPM
;;
stop)
kill -s QUIT $(cat $PIDF)
kill -s QUIT $(cat $PIDF_FPM)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo “Usage: $0 {start|stop|restart|reload}”
exit 1
esac
exit 0
--------以下是让nginx支持PHP功能--------
vi /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
root /var/www/aa;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/aa$fastcgi_script_name; //注意目录名称
include fastcgi_params;
}
vi /var/www/aa/index.php
<?php phpinfo(); ?>在网页测试http://192.168.80.100/index.php会出现PHP的相关网页,会有测试结果出现
unzip Discuz_X3.2_SC_UTF8.zip -d /opt/
cd /opt/dir_SC_UTF8
cp -r upload/ /var/www/aa/mfs/bbs 放到挂载点的下面
cd /var/www/aa/mfs/bbs
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
http://192.168.80.100/mfs/bbs/install/index.php 测试会看到Discuz论坛的安装
配置动静分离:
进入nginx的配置文件/usr/local/nginx/conf/nginx.conf里