我正在尝试使用 EMC VMAX3 在后端的同一数据中心的两台服务器之间复制(使用 rsync 的约 7TB 数据)
复制 ~30-40GB 的数据后,多路径开始失败
Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: Recovered to normal mode
Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: remaining active paths: 1
Dec 15 01:57:53 test.example.com kernel: sd 1:0:2:20: [sdeu] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[root@test log]# multipath -ll |grep -i fail
|- 1:0:0:15 sdq 65:0 failed ready running
- 3:0:0:15 sdai 66:32 failed ready running
Run Code Online (Sandbox Code Playgroud)
我们使用默认的 multipath.conf
HBA driver version 8.07.00.26.06.8-k
HBA model QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express …Run Code Online (Sandbox Code Playgroud) 我的要求是将 subversion 日志(即用户名、修订号...)发送到 logstash 进行解析(然后将其存储在弹性搜索中,最后通过 kibana 显示)。因为 subversion 使用自己的基于文件的数据库(FSFS)而不是纯文本文件,我有两个选择
我还考虑过提交后脚本,每当任何用户签入时,它都会触发它,然后将日志存储在文本文件中,但与第 1 点相同。
任何帮助/想法都非常感谢
编辑正如我在第 3 点中提到的,我们编写了这个小的 post-commit,这样每当用户签入时,我们就可以将元数据保存在某个文件中,然后通过 syslog 我们可以将此日志传输到 logstash 服务器。这种方法的最大缺点之一是我正在处理 TB 数据和每分钟 15+ 次签入,这个文件变得非常大(我们可以使用 logrotate)但同时面临锁定条件问题(因为多个用户尝试签入并写入同一个文件)这最终会导致竞争条件并使情况更糟。在下面粘贴提交后钩子,以便对其他人有用
#!/bin/sh
REPOS="$1"
REV="$2"
LOG="/tmp/svn.log"
var1=/usr/bin/svnlook info -r $REV $REPOS | tr '\n' '|'`
var2=/usr/bin/svnlook changed -r $REV $REPOS | tr '\n' ' '`
echo "r${REV}|${var1}|${var2}\n" | tee -a ${LOG} 2>&1
echo " " | tee -a ${LOG} 2>&1
Run Code Online (Sandbox Code Playgroud) 当我尝试签入文件时,我间歇性地遇到这个问题
svn ci -m "commit message" file
Warning: post commit FS processing had error:
sqlite[S5]: database is locked
Some more info
Server side OS --> Centos6.5 and svn version 1.8.5
Client Side OS --> Centos 5.11 and svn version 1.7.7
Run Code Online (Sandbox Code Playgroud)
我已经检查了一些论坛,这些是建议,但它没有解决我的问题
1: Check server load(Server is fairly idle when I faced this issue..checked load average,IO and memory utilization)
2: There is a longer commit is in progress at that time
3: Both server and client are in same geographic location …Run Code Online (Sandbox Code Playgroud)