当一个驱动器发生错误时,假设它总是被检测并报告给OS(如果软件RAID如mdadm)或者RAID控制器(如果是硬件RAID)作为失败的读取报告是正确的(即它不会静默地返回损坏的数据),然后RAID软件/控制器将采取这一事实,并使用RAID中的其他驱动器读取数据,而不是(假设它是一种冗余的RAIDtypes)? 据我所知,现代企业级驱动器有错误检测机制,所以我认为是这样的,但是在网上find任何结论都很困难。 我想这个答案取决于驱动器内置的错误检测的质量,所以如果有问题的话,我最关心的是Intel DC S3500系列SSD。 编辑5-Jun-2015 – 澄清: 具体来说,我想知道今天用于检测错误的algorithm是否可靠。 举一个简单的例子,如果错误检测只是对扇区中的所有位进行XOR,那么如果两位被翻转,错误将不被检测到。 我想他们比这更先进,但是我想知道错误发生的可能性是多less,如果它太低,我们甚至不需要担心,如果在这个地方有一些权威的来源或值得信赖的文章,被引用。 编辑10-Jun-2015 更新了问题标题和问题主体,以使其对磁盘错误的概念更为通用(不像以前那样以mdadm为中心)。
我正在尝试使用PM2进程pipe理器。 我正在安装它与franklinkim.pm2angular色 它工作,它启动我的节点的应用程序,如果我手动杀死节点的应用程序,我看到PM2重新启动它 但是…,我似乎可以访问现有的PM2实例。 如果inputps aux | grep PM2 ps aux | grep PM2我得到了 root 1073 4.1 8.3 648348 41736 ? Ssl 06:12 0:00 PM2 v0.12.15: God Daemon 现在我想看PM2的进程列表,所以我键入sudo pm2 list ,我得到 [PM2] Spawning PM2 daemon [PM2] PM2 Successfully daemonized ┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ […]
在Linux系统上,我有一个我想保存的文件(甚至是偶然的)删除。 我怎样才能创build一个文件,即使root用户不能删除? 例如,通过尝试: # touch file # chmod 000 file # chown <somebody>:<somebody> file # rm file root用户可以删除文件(通过最后一个命令)。 我怎样才能避免root用户(甚至临时)删除文件?
我有一个homelab越来越大,我越来越多地学习。 我想知道是否有可能从一台服务器pipe理我的所有用户? 所以,我不必每次创build一个新的根和普通用户与sudo访问每次我旋转了另一个Vm? 轻松创build新用户,重置密码等。
我只是在一台服务器上安装了CentOS 7.1,我对systemctl和service systemctl感到困惑。 在CentOS 6上,我会在运行service时得到反馈,例如: root@centos6 [~]# service mysql restart Shutting down MySQL………………………………….[ OK ] Starting MySQL………………………………………[ OK ] root@centos6 [~]# service mysql status MySQL running (910285) [ OK ] root@centos6 [~]# 但是在CentOS 7上,当我使用systemctl ,我什么也得不到。 我不知道发生了什么,或者甚至发生了什么事情: root@centos7 [~]# systemctl restart mysql root@centos7 [~]# /bin/systemctl restart mysql.service # Nothing happened 当我在CentOS 7上运行service时,会发生这种情况: root@centos7 [~]# service mysql […]
如果数据包包含stringtest则需要将所有目标端口为15000的UDP数据包redirect到端口15001。 我有这两个简单的规则: iptables -t nat -A PREROUTING -i eth0 -p udp –dport 15000 -m string –string 'test' –algo bm -j LOG –log-prefix='[netfilter] ' iptables -t nat -A PREROUTING -i eth0 -p udp –dport 15000 -m string –string 'test' –algo bm -j REDIRECT –to-ports 15001 奇怪的行为: 如果第一个数据包包含teststring,则对连接的所有数据包进行redirect; 如果连接的第一个数据包不包含test ,即使后续数据包包含test ,也不会执行redirect 但是所有匹配规则的数据包都被正确logging 我试图添加轨道信息的规则: -m state –state NEW,ESTABLISHED […]
我知道如何扫描一个目录: clamscan -r /home 但对于我的生活,我似乎无法得到多个目录工作,我似乎无法谷歌这个简单的问题。 我努力了: clamscan -r /home /otherdir clamscan -r /home,/otherdir 无济于事。 我究竟做错了什么?
有点困惑。 rpm -U和rpm -F之间的差异是什么? 手册页说-U升级包 -F,–freshen = +如果已经安装了升级包
我正在开发一个“本地”PHP项目。 这是一个在Debian VM中运行的PHP应用程序,用于用户自己的PC上。 我有一些从/etc/init.d作为根服务运行的python脚本,它们负责处理应用程序更新,日志,与USB外围设备的通信以及杂项。 编辑1:该VM是一个Turnkey Linux LAMP映像,Python版本是2.7.3,MySQL 5.5.47 PHP应用程序通过TCP套接字与python服务对话,发送用户需要的特定任务的请求。 现在,我试图让用户select让MySQL服务器只绑定到本地主机还是与networking上的其他用户共享。 为此,我有python服务通过my.cnf文件,并注释掉bind-address = 127.0.0.1行,或者取消注释,使服务器再次本地。 在my.cnf编辑之后,python脚本调用/etc/init.d/mysql restart以使更改生效。 问题是,现在mysql最终收听了python服务正在侦听的PHP请求的端口,如果我需要重新启动服务Python失败,声称它不能打开端口,因为它已经被使用了。 我无法弄清楚为什么地狱会最终在Python服务使用的端口监听,而不是如my.cnf文件所说的3306。 另外,如果我ssh到虚拟机,并手动重新启动mysql它回到侦听3306,我可以启动python服务确定。 python一些代码: RECV_BUFFER = 4096 DAEMON_PORT = 5555 daemon_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) daemon_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) daemon_socket.bind(("localhost", DAEMON_PORT)) daemon_socket.listen(10) //// SOCKET HANDLING, QUEUE and etc if (data =='share:enable'): import fileinput import re import subprocess for line in fileinput.input('/etc/mysql/my.cnf', inplace […]
我的Linux使用Deadlinealgorithm进行I / O调度。 其中一个参数是/sys/block/sda/queue/iosched/front_merges下的front_merges参数。 默认情况下它被设置为1,这意味着前面的合并很可能发生。 如果不希望前端合并发生,可以将其设置为0来获得性能提升。 什么是正面合并? 有人可以描述这个吗? 我如何知道或testing是否在我的系统上发生前端合并?