mogilefs分布式部署及说明
一、mogilefs介绍二、mogilefs原理
三、mogilefs架构说明
四、mogile安装部署
一、mogilefs介绍
MogileFS是我们的开源分布式文件系统。其性能和特点包括:
(1)应用程序级别 - 不需要特殊的内核模块。
没有单点故障 -MogileFS设置的所有三个组件(存储节点,跟踪器和跟踪器的数据库)可以在多台机器上运行,因此没有单点故障。 (您可以在与存储节点相同的计算机上运行跟踪器,因此您不需要4台计算机...)建议至少使用2台计算机。
(2)自动文件复制
基于文件“类”的文件在足够不同的存储节点之间自动复制,以满足其类所请求的最小复制计数。例如,对于照片托管网站,您可以使原始JPEG的最小副本计数为3,但缩略图和缩放版本只有副本计数为1或2.如果你失去了缩略图的唯一副本,应用程序可以重建它。以这种方式,MogileFS(无RAID)可以在不必要地存储多个数据副本的磁盘上节省资金。
(3)比RAID更好
在非SAN RAID设置中,磁盘是冗余的,但主机不是。如果丢失整个机器,则文件无法访问。 MogileFS在不同主机上的设备之间复制文件,因此文件始终可用。
(4) Flat Namespace
文件由平面的全局命名空间中的命名键标识。您可以创建任意数量的命名空间,因此具有可能冲突的键的多个应用程序可以在同一个MogileFS安装上运行。
(5) Shared-Nothing
MogileFS不依赖于具有共享磁盘的昂贵的SAN。每台机器都维护自己的本地磁盘。
(6)不需要RAID
MogileFS存储节点上的本地磁盘可以位于RAID中,也可以不位于RAID中。它不是更便宜,因为RAID不会买你任何安全,MogileFS尚未提供。
(7)与本地文件系统无关联
MogileFS存储节点上的本地磁盘可以使用您选择的文件系统(ext3,XFS等)进行格式化。 MogileFS有自己的内部目录哈希,因此它不会遇到文件系统限制,如“每个目录的最大文件数”或“每个目录最大目录数”。使用你舒适的。
二、mogilefs原理
Tracker(mogilefsd进程):
基于事件的父进程/消息总线,管理来自应用程序的所有客户端通信(请求执行操作),包括将这些请求负载平衡到“查询工作器”,并处理mogilefsd子进程之间的所有通信。您应该在不同的主机上运行2个跟踪程序,为HA或更多负载均衡(如果您需要超过2)。 mogilefsd下的子进程包括:
Replication - 复制文件
Deletion- 命名空间中的删除是立即的;从文件系统的删除是异步的
Query - 应答来自客户端的请求
Reaper- 在磁盘发生故障后重新排列文件以进行复制
Monitor- 监视主机和设备的运行状况和状态
... ...
数据库
存储MogileFS元数据(命名空间,哪些文件位于哪里)的数据库。这应该在HA配置中设置,所以你没有单点故障。
存储节点
存储文件的位置。存储节点只是执行DELETE,PUT等的HTTP服务器。任何WebDAV服务器都很好,但建议使用mogstored。 mogilefsd可以配置为使用不同端口上的两个服务器... mogstored用于所有WebDAV操作(和边带监控),以及您的快速/轻量级HTTP服务器,用于GET操作。通常人们每个安装点有一个SATA磁盘,每个安装在/var/mogdata/devNN。
三、mogilefs架构说明
http://s5.运维网.com/wyfs02/M00/8C/48/wKioL1ho1_izePXZAACicj8se38201.png-wh_500x0-wm_3-wmp_4-s_4142506650.png
四、安装部署
mogilefs+tracker部署在47,48,49上,三个安装一致,这里只写47的安装方法
1.安装mogilefs
下载地址:https://github.com/mogilefs/
由于mogilefs没有提供rpm包,这里使用原生的安装方法,如果需要使用rpm,去下载他人生成好的RPM
1.1.安装需要的依赖包:
yum install perl-DBD-mysql perl-CPAN perl-YAML gcc-c++ 添加用户
adduser mogilefs 1.2.安装MogileFS-Server
unzip MogileFS-Server-master.zip
cd MogileFS-Server-master
per Makefile.PL
make
make install 1.3.安装MogileFS-Network
cd MogileFS-Network-master/
perl Makefile.PL
make
make install 1.4.安装MogileFS-Utils
cd MogileFS-Utils-master/
per Makefile.PL
make
make install 1.5.安装perl-MogileFS-Client
cd perl-MogileFS-Client-master/
per Makefile.PL
make
make install 1.6.Perl安装插件
perl -MCPAN -e 'install Danga::Socket'
perl -MCPAN -e 'install Gearman::Client'
perl -MCPAN -e 'install Gearman::Server'
perl -MCPAN -e 'install Gearman::Client::Async'
perl -MCPAN -e 'install Net::Netmask'
perl -MCPAN -e 'install IO::WrapTie'
perl -MCPAN -e 'install IO::AIO'
perl -MCPAN -e 'install List::MoreUtils'
perl -MCPAN -e 'install Path::Class'
perl -MCPAN -e 'install Perlbal' 2.配置数据库
数据库172.16.110.50
2.1.数据库安装略过
2.2.创建数据库及添加账号
添加root管理账号
MariaDB > grant all on *.* to 'root'@'172.16.110.%' identified by 'ckl893';
Query OK, 0 rows affected (0.01 sec) 创建数据库:
MariaDB > create database mogilefs;
Query OK, 1 row affected (0.00 sec) 添加mogilefs远程连接用户:
MariaDB > grant all on mogilefs.* to 'moguser'@'172.16.110.%' identified by 'mogpass';
Query OK, 0 rows affected (0.00 sec) 2.3.生成数据表操作
修改生成脚本:
# vim mogdbsetup
....
my %args = (
dbhost => "172.16.110.50",
dbport => 3306,
dbname => "mogilefs",
dbrootuser => "root",
dbrootpass => "ckl893",
dbuser => "moguser",
dbpass => "mogpass",
);
.... 在47上生成数据库表:
./mogdbsetup --dbhost=172.16.110.50 --dbname=mogilefs --dbuser=moguser --dbpassword=mogpass
This will attempt to setup or upgrade your MogileFS database.
It won't destroy existing data.
Run with --help for more information.Run with --yes to shut up these prompts.
Continue? : y 查看数据表:
MariaDB > show tables;
+----------------------+
| Tables_in_mogilefs |
+----------------------+
| checksum |
| class |
| device |
| domain |
| file |
| file_on |
| file_on_corrupt |
| file_to_delete |
| file_to_delete2 |
| file_to_delete_later |
| file_to_queue |
| file_to_replicate |
| fsck_log |
| host |
| server_settings |
| tempfile |
| unreachable_fids |
+----------------------+
17 rows in set (0.00 sec) 3.配置文件及脚本
3.1.创建配置文件目录及权限
mkdir /etc/mogilefs/
chown -R mogilefs.mogilefs /etc/mogilefs/
cp /tmp/soft/MogileFS-Server-master/conf/mogilefsd.conf /etc/mogilefs/
cp /tmp/soft/MogileFS-Server-master/conf/mogstored.conf /etc/mogilefs/ 3.2.mogilefsd配置文件说明
#vim /etc/mogilefs/mogilefsd.conf
daemonize = 1守护进程运行
pidfile = /var/run/mogilefsd/mogilefsd.pidpid文件
db_dsn = DBI:mysql:mogilefs:host=172.16.110.50指定数据库连接地址
db_user = moguser 数据库连接用户
db_pass = mogpass 数据库连接密码
listen = 0.0.0.0:7001 tracker监听端口
conf_port = 7001 配置端口
query_jobs = 10 查询线程
delete_jobs = 1 删除线程
replicate_jobs = 5 复制线程
reaper_jobs = 1 复制线程 3.3.mogstored配置文件说明
#vim /etc/mogilefs/mogstored.conf
maxconns = 10000 #最大连接数
httplisten = 0.0.0.0:7500#访问端口
mgmtlisten = 0.0.0.0:7501#管理端口
docroot = /var/mogdata #数据目录
pidfile = /var/run/mogstored/mogstored.pid #pid文件,如果脚本指定,这里必须有 3.4.mogilefsd启动脚本
vim /etc/init.d/mogilefsd
#!/bin/sh
#
# mogilefsd Startup script for the MogileFS tracker
#
# chkconfig: - 85 15
# description: MogileFS tracker
# processname: mogilefsd
# config: /etc/mogilefs/mogilefs.conf
# pidfile: /var/run/mogilefsd/mogilefsd.pid
# Source function library.
. /etc/init.d/functions
# Check that networking is up.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
mogilefsd="/usr/local/bin/mogilefsd"
MOGILEFS_CONF_FILE="/etc/mogilefs/mogilefsd.conf"
SUDO_USER=mogilefs
lockfile=/var/lock/subsys/mogilefsd
start() {
echo -n $"Starting mogilefsd: "
#sudo -u $SUDO_USER $mogilefsd -c $MOGILEFS_CONF_FILE --daemon --no_schema_check
daemon --user $SUDO_USER $mogilefsd -c $MOGILEFS_CONF_FILE --daemon
retval=$?
echo
[ $retval = 0 ] && touch ${lockfile}
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc mogilefsd
retval=$?
echo
[ $retval = 0 ] && rm -f ${lockfile}
return $retval
}
reload() {
echo -n $"Reloading mogilefsd: "
killproc mogilefsd -HUP
retval=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status mogilefsd
retval=$?
;;
restart)
stop
start
;;
reload)
reload
;;
*)
echo $"Usage: mogilefsd {start|stop|restart|reload|status}"
exit 1
esac
exit $retval 3.5.mogstored启动脚本
vim /etc/init.d/mogstored
#!/bin/sh
#
# mogstored Startup script for the Mogstored Storage
#
# chkconfig: - 85 15
# description: MogileFS storage
# processname: mogstored
# config: /etc/mogilefs/mogstored.conf
# pidfile: /var/run/mogstored/mogstored.pid
# Source function library.
. /etc/init.d/functions
# Check that networking is up.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
mogstored="/usr/local/bin/mogstored"
MOGILEFS_CONF_FILE="/etc/mogilefs/mogstored.conf"
SUDO_USER=mogilefs
lockfile=/var/lock/subsys/mogstored
start() {
echo -n $"Starting mogstored: "
# sudo -u $SUDO_USER $mogilefsd -c $MOGILEFS_CONF_FILE --daemon --no_schema_check
$mogstored --config=$MOGILEFS_CONF_FILE --daemon
# daemon --user $SUDO_USER $mogstored -c $MOGILEFS_CONF_FILE --daemon
retval=$?
echo
[ $retval = 0 ] && touch ${lockfile}
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc mogstored
retval=$?
echo
[ $retval = 0 ] && rm -f ${lockfile}
return $retval
}
reload() {
echo -n $"Reloading mogstored: "
killproc mogstored -HUP
retval=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status mogstored
retval=$?
;;
restart)
stop
start
;;
reload)
reload
;;
*)
echo $"Usage: mogstored {start|stop|restart|reload|status}"
exit 1
esac
exit $retval 3.6.启动进程:
启动查看mogilefsd进程
# systemctl start mogilefsd.service
# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:7001 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::* 启动查看mogstored进程:
# systemctl status mogstored.service
# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:7500 *:*
LISTEN 0 128 *:7501 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:7001 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::* 4.添加节点
为每个host增加节点,方法一直,随便选择一个tracker即可
4.1.增加节点:
# mogadm --trackers=172.16.110.47:7001 host add node1 --ip=172.16.110.47 --status=alive
# mogadm --trackers=172.16.110.48:7001 host add node2 --ip=172.16.110.48 --status=alive
# mogadm --trackers=172.16.110.49:7001 host add node3 --ip=172.16.110.49 --status=alive 删除节点:
mogadm --trackers=172.16.110.49:7001 host delete node1 查看增加的节点:
# mogadm --trackers=172.16.110.49:7001 host list
node1 : alive
IP: 172.16.110.47:7500
node2 : alive
IP: 172.16.110.48:7500
node3 : alive
IP: 172.16.110.49:7500 4.2.添加设备存储节点:
(注意,最后一列的ID号同创建的目录的序号,如dev4 就是 4)
# mogadm --trackers=172.16.110.49:7001 device add node1 4
# mogadm --trackers=172.16.110.49:7001 device add node2 5
# mogadm --trackers=172.16.110.49:7001 device add node3 6 创建物理存储节点路径:
node1:
mkdir -pv /var/mogdata/dev4
chown -R mogilefs.mogilefs /var/mogdata/dev4 node2:
mkdir -pv /var/mogdata/dev5
chown -R mogilefs.mogilefs /var/mogdata/dev5 node3:
mkdir -pv /var/mogdata/dev6
chown -R mogilefs.mogilefs /var/mogdata/dev6 查看添加的节点:
# mogadm --trackers=172.16.110.49:7001 device list
node1 : alive
used(G) free(G) total(G)weight(%)
dev4: alive 1.786 6.200 7.986 100
node2 : alive
used(G) free(G) total(G)weight(%)
dev5: alive 1.792 6.194 7.986 100
node3 : alive
used(G) free(G) total(G)weight(%)
dev6: alive 1.928 6.059 7.986 100 删除设备存储节点:
mogadm --trackers=172.16.110.49:7001 device mark node1 1 dead 4.3.检查节点状态:
# mogadm --trackers=172.16.110.49:7001 check
Checking trackers...
172.16.110.49:7001 ... OK
Checking hosts...
[ 1] node1 ... OK
[ 2] node2 ... OK
[ 3] node3 ... OK
Checking devices...
host device size(G) used(G) free(G) use% ob state I/O%
---- ------------ ---------- ---------- ---------- ------ ---------- -----
[ 1] dev4 7.986 1.786 6.20022.37%writeable 0.0
[ 2] dev5 7.986 1.793 6.19322.45%writeable 0.0
[ 3] dev6 7.986 1.929 6.05824.15%writeable 0.0
---- ------------ ---------- ---------- ---------- ------
total: 23.959 5.508 18.45122.99% 5.添加域
5.1.创建域:
# mogadm --trackers=172.16.110.49:7001 domain add img
# mogadm --trackers=172.16.110.49:7001 domain add html
# mogadm --trackers=172.16.110.49:7001 domain add file 查看域信息:
# mogadm --trackers=172.16.110.49:7001 domain list
domain class mindevcount replpolicy hashtype
-------------------- -------------------- ------------- ------------ -------
file default 2 MultipleHosts() NONE
html default 2 MultipleHosts() NONE
img default 2 MultipleHosts() NONE 6.添加类
默认会创建默认类,这里我们创建测试:
6.1.默认类:
# mogadm --trackers=172.16.110.49:7001 class list
domain class mindevcount replpolicy hashtype
-------------------- -------------------- ------------- ------------ -------
file default 2 MultipleHosts() NONE
html default 2 MultipleHosts() NONE
img default 2 MultipleHosts() NONE 6.2.创建自定义类:
# mogadm --trackers=172.16.110.49:7001 class add html ckltext --mindevcount=3 查看类列表:
# mogadm --trackers=172.16.110.49:7001 class list
domain class mindevcount replpolicy hashtype
-------------------- -------------------- ------------- ------------ -------
file default 2 MultipleHosts() NONE
html ckltext 3 MultipleHosts() NONE
html default 2 MultipleHosts() NONE
img default 2 MultipleHosts() NONE 7.文件上传
7.1.上传测试:
# mogupload --trackers=172.16.110.49:7001 --domain=file --key='ckl_cron.txt' --file=/data/ckl_cron.txt
# mogupload --trackers=172.16.110.49:7001 --domain=img --key='001' --file=/data/001.jpg
# mogupload --trackers=172.16.110.49:7001 --domain=html --class=ckltext --key='index.html' --file=/data/index.html 上传到指定域指定类 7.2.查看文件上传信息
# mogfileinfo --trackers=172.16.110.49:7001 --domain=file --key='ckl_cron.txt'
- file: ckl_cron.txt
class: default
devcount: 1
domain: file
fid: 17
key: ckl_cron.txt
length: 78
- http://172.16.110.48:7500/dev5/0/000/000/0000000017.fid# mogfileinfo --trackers=172.16.110.49:7001 --domain=img --key='001'
- file: 001
class: default
devcount: 1
domain: img
fid: 18
key: 001
length: 68539
- http://172.16.110.47:7500/dev4/0/000/000/0000000018.fid# mogfileinfo --trackers=172.16.110.49:7001 --domain=html --key='index.html'
- file: index.html
class: ckltext
devcount: 1
domain: html
fid: 19
key: index.html
length: 131
- http://172.16.110.48:7500/dev5/0/000/000/0000000019.fid 7.3.查看设备存储信息
# mogstats --config=/etc/mogilefs/mogilefsd.conf
Fetching statistics... (all)
Statistics for devices...
device host files status
---------- ---------------- ------------ ----------
dev4 node1 1 alive
dev5 node2 3 alive
---------- ---------------- ------------ ----------
Statistics for file ids...
Max file id: 20
Statistics for files...
domain class files size (m)fullsize (m)
-------------------- ----------- ---------- ----------- -------------
file default 1 0 0
html ckltext 1 0 0
img default 2 0 0
-------------------- ----------- ---------- ----------- -------------
Statistics for replication...
domain class devcount files
-------------------- ----------- ---------- ----------
file default 1 1
html ckltext 1 1
img default 1 2
-------------------- ----------- ---------- ----------
Statistics for replication queue...
status count
-------------------- ------------
deferred 4
-------------------- ------------
Statistics for delete queue...
status count
-------------------- ------------
-------------------- ------------
Statistics for general queues...
queue status count
--------------- -------------------- ------------
--------------- -------------------- ------------
done 8.访问测试
http://172.16.110.48:7500/dev5/0/000/000/0000000017.fid
http://s5.运维网.com/wyfs02/M00/8C/48/wKioL1ho2i3yKWsgAAAYm0U5moE281.png-wh_500x0-wm_3-wmp_4-s_1045189372.png
http://172.16.110.48:7500/dev5/0/000/000/0000000019.fid
http://s3.运维网.com/wyfs02/M00/8C/48/wKioL1ho2nKgSXnmAAAc1QHhYOQ888.png-wh_500x0-wm_3-wmp_4-s_4150645615.png
http://172.16.110.48:7500/dev5/0/000/000/0000000020.fid
http://s1.运维网.com/wyfs02/M02/8C/48/wKioL1ho2j6B0qVQAAXfeb-E-dU160.png-wh_500x0-wm_3-wmp_4-s_396642892.png
9.nginx反向代理配置
下载nginx_mogilefs_module-1.0.4.tar.gz模块
地址:http://www.grid.net.ru/nginx/mogilefs.en.html
9.1.安装zlib
tar -xf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make insatll 9.2.安装pcre
tar -xf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make
make install 9.3.安装openssl
tar -xf openssl-1.0.2.tar.gz
cd openssl-1.0.2
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make
make insatll 9.4.安装nginx
tar -xf nginx-1.6.3.tar.gz
cd nginx-1.6.3/
./configure--prefix=/app/local/nginx \
--pid-path=/app/local/nginx \
--user=nginx \
--group=nginx \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-pcre=/tmp/soft/pcre-8.37 \
--with-openssl=/tmp/soft/openssl-1.0.2 \
--add-module=/tmp/soft/nginx_mogilefs_module-1.0.4
make
make isntall 9.5.nginx配置
参考http://www.grid.net.ru/nginx/mogilefs.en.html
usernginx;
worker_processes8;
error_log/app/local/log/nginx/error.log warn;
pid /app/local/nginx/logs/nginx.pid;
events {
use epoll;
worker_connections5120;
multi_accept on;
}
http {
server_names_hash_bucket_size 64;
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
include /app/local/nginx/conf/mime.types;
default_typeapplication/octet-stream;
log_format main "$http_cdn_src_ip | $time_local | $request | $status | $body_bytes_sent | "
"$request_body | $content_length | $http_referer | $http_user_agent | "
"$http_x_forwarded_for | $remote_addr | $upstream_response_time | $request_time | $http_tracecode";
access_log/app/local/log/nginx/access.logmain;
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
server_tokens off;
sendfile on;
tcp_nopushon;
tcp_nodelay on;
keepalive_timeout65;
client_header_timeout 20;
client_body_timeout 20;
reset_timedout_connection on;
send_timeout 30;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 4;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
open_file_cache max=409600 inactive=30s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
upstream mog_tracker {
server 172.16.110.47:7001;
server 172.16.110.48:7001;
server 172.16.110.49:7001;
}
server {
listen 80;
location ~* /html/ {
mogilefs_tracker mog_tracker;
mogilefs_domain html;
mogilefs_pass{
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
location ~* /img/{
mogilefs_tracker mog_tracker;
mogilefs_domain img;
mogilefs_pass{
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
location ~* /file/ {
mogilefs_tracker mog_tracker;
mogilefs_domain file;
mogilefs_methods GET PUT DELETE;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
}
} 启动nginx:
systemctl start nginx.service 10.测试文件
http://s3.运维网.com/wyfs02/M02/8C/4B/wKiom1ho2sCTF56-AAAUlwSeAlc154.png-wh_500x0-wm_3-wmp_4-s_3327012448.png
http://s3.运维网.com/wyfs02/M01/8C/4B/wKiom1ho2s2jdja7AASeUHhQhAQ582.png-wh_500x0-wm_3-wmp_4-s_12563576.png
http://s1.运维网.com/wyfs02/M01/8C/48/wKioL1ho2t7jMQhRAAAUQ2zq8NQ333.png-wh_500x0-wm_3-wmp_4-s_3302349922.png
错误说明:
启动报错1:
Jan 01 12:05:42 www3.ckl.com runuser: pam_unix(runuser:session): session opened for user root by (uid=0)
Jan 01 12:05:42 www3.ckl.com mogilefsd: Starting mogilefsd: Can't locate Sys/Syslog.pm in @INC (@INC contains: lib /us...ne 25.
Jan 01 12:05:42 www3.ckl.com mogilefsd: BEGIN failed--compilation aborted at /usr/local/share/perl5/MogileFS/Server.pm line 25.
Jan 01 12:05:42 www3.ckl.com mogilefsd: Compilation failed in require at /usr/local/bin/mogilefsd line 16.
Jan 01 12:05:42 www3.ckl.com mogilefsd: BEGIN failed--compilation aborted at /usr/local/bin/mogilefsd line 16.
Jan 01 12:05:42 www3.ckl.com mogilefsd:
Jan 01 12:05:42 www3.ckl.com systemd: mogilefsd.service: control process exited, code=exited status=1
Jan 01 12:05:42 www3.ckl.com systemd: Failed to start SYSV: MogileFS tracker.
Jan 01 12:05:42 www3.ckl.com systemd: Unit mogilefsd.service entered failed state.
Jan 01 12:05:42 www3.ckl.com systemd: mogilefsd.service failed.
Warning: mogilefsd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Hint: Some lines were ellipsized, use -l to show in full. 解决1:
yum install perl-core 启动报错2:
Jan 01 13:35:29 www3.ckl.com systemd: Starting SYSV: MogileFS storage...
Jan 01 13:35:30 www3.ckl.com mogstored: Starting mogstored:
Jan 01 13:35:30 www3.ckl.com systemd: PID file /var/run/mogstored/mogstored.pid not readable (yet?) after start. 解决2:
配置文件增加 pidfile = /var/run/mogstored/mogstored.pid 编译nginx报错:
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c: In function ‘ngx_http_mogilefs_handler’:
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c:320:12: error: ‘ngx_peer_connection_t’ has no member named ‘lock’
u->peer.lock = &r->connection->lock;
^
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c:320:34: error: ‘ngx_connection_t’ has no member named ‘lock’
u->peer.lock = &r->connection->lock;
^
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c: In function ‘ngx_http_mogilefs_create_request’:
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c:739:37: error: variable ‘request’ set but not used [-Werror=unused-but-set-variable]
ngx_str_t request, domain;
^
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c: In function ‘ngx_http_mogilefs_create_spare_location’:
/tmp/soft/nginx_mogilefs_module-1.0.4/ngx_http_mogilefs_module.c:1532:39: error: variable ‘pclcf’ set but not used [-Werror=unused-but-set-variable]
ngx_http_core_loc_conf_t*clcf, *pclcf, *rclcf;
^
cc1: all warnings being treated as errors
make: *** Error 1
make: Leaving directory `/tmp/soft/nginx-1.8.1'
make: *** Error 2 解决:
CFLAGS =-pipe-O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g 去掉 -Werror
CFLAGS =-pipe-O -W -Wall -Wpointer-arith -Wno-unused-parameter -g (系统7.3,nginx:1.6.3,以后的版本会编译出错,跳过也不行)
页:
[1]