Articles of linux

iSCSI TGTD超过InfiniBand性能

我刚刚configuration了服务器到服务器的4x SDR InfiniBand链接,以增加虚拟机(特别是数据库服务器)的后端存储带宽。 我在CentOS 6上使用TGTD,当使用iperf进行testing时,使用IPoIB可以达到6.45Gbps。 我已经设法调整了iSCSI启动器和目标,以便我可以实现大约260MB / s的写入SSD。 然而,由于我可以在本地以500-600MB / s的速度写入,所以这仍然不是最佳的写入速度。 我目前使用的参数是: MaxRecvDataSegmentLength 4194304 MaxXmitDataSegmentLength 524288 MaxBurstLength 4194304 FirstBurstLength 262144 MaxOutstandingUnexpectedPDUs = 0 MaxOutstandingR2T = 1 MaxCommands = 256 QueueDepth = 128 有没有人有任何经验,在调整? 有没有可能比configuration更改得到任何更高的? 即使通过在两台设备上执行RAID 0,我仍然只能达到相同的带宽,而我预料会更高。

postfix客户端主机被拒绝

我在Ubuntu 12.04上设置了Postfix + Courier + Roundcube,但是当我尝试发送带有Roundcube的电子邮件时,出现以下错误: /var/log/mail.log: Dec 30 20:54:35 server postfix/smtpd[31465]: connect from localhost[127.0.0.1] Dec 30 20:54:35 server postfix/smtpd[31465]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1.1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits) Dec 30 20:54:35 server postfix/smtpd[31465]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 554 5.7.1 <localhost[127.0.0.1]>: Client host rejected: Access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail.mydomain.net> Dec […]

无法使用vsftpdlogin到Debian上的FTP

我试图设置FTP访问我的Apache服务器,但我收到530 Login Incorrect错误。 我通过sudo apt-get install vsftpd安装了vsftp软件包。 我已经尝试用我创build的用户连接到ftp://(my ip address) , andrew ,他是ftp用户组的成员。 我也试着用root连接。 我确定密码是正确的。 理想情况下,我希望能够连接到我的/var/www/目录通过FTP客户端上传文件。 这是我的vsftpd.conf文件没有注释的样子: listen=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem 并与评论: # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to […]

作为用户启动Tomcat 7 – init.d脚本不能写入pid

我想在CentOS 6上以用户身份运行Tomcat 7.我创build了一个用户tomcat:tomcat并更改了/var/lib/apache-tomcat*等的所有权。 网上有很多关于如何做的文档,但是我不认为它们是最新的。 他们中的大多数表明你做如下。 问题是…这个技术会炸弹,因为tomcat启动等脚本由于文件系统权限较低而无法写入PID。 我不想开始放松对文件系统的写权限。 目标是增加安全性。 有什么更好的方法来做到这一点? 我很惊讶,没有一个“jar装”的初始化脚本的Tomcat。 我知道这并不复杂。 但为什么我们不得不重新发明轮子? 谢谢 我已经使用了这个多年。 我不记得我在哪里。 我刚加了/bin/su tomcat 。 # Startup script for the Jakarta Tomcat Java Servlets and JSP server # # chkconfig: – 85 15 # description: Jakarta Tomcat Java Servlets and JSP server # processname: tomcat # pidfile: /var/run/tomcat.pid # config: # Source […]

如何删除磁盘错误后遗留的locking的逻辑卷()?

在移动一些扩展盘时,出现了一些磁盘错误,现在我有一个隐藏的locking[pvmove0],虽然它的长度是4Mb,但似乎没有分配物理盘区。 # lvs -a -o+seg_pe_ranges a/pvmove0 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert PE Ranges [pvmove0] a vwC—v— 4.00m 几年前,我在一个不同的系统上看到过这种情况(见这里 ),但没有得到很多答复(只有一个),我不记得如何修复它。 简单的lvremove a/pvmove0 '(可选使用–force )将导致消息Can't remove locked LV pvmove0 。 pvmove –abort什么都不做。 这个卷的存在似乎不会影响其他移动(它只是使用[pvmove1])。 在configuration中,LV显示: pvmove0 { id = "54veYD-hM8r-j214-MOD1-FGnV-3g7t-jRlZ7W" status = ["READ", "WRITE", "LOCKED"] flags = [] creation_host = "zotac" creation_time […]

在虚拟IP上发送的数据包不符合iptables规则

我有一个IP地址为222.192.124.3的虚拟接口eth1:3 ,我已经build立了一个iptables规则来使用接口的IP(我知道iptables不关心虚拟接口标签)login到那个接口上的数据包,如下所示: iptables -A INPUT -d 222.192.124.3 -j LOG –log-level warning –log-prefix "VIP3-IN: " 当我运行tcpdump并从另一台机器发送这个IP上的数据包时,我看到它们,所以我认为它们是由内核正确接收和处理的,但iptables从不logging这些数据包,当我运行iptables -nvL ,该规则不会增加,就好像它们从来没有达到规则一样(或者如果iptables甚至没有看到数据包进入该接口)。 我首先想到了与数据包相匹配的另一个规则,并在处理LOG规则之前处理它,所以我删除了每个iptables规则,只添加了日志logging规则,但没有成功。 服务器运行在RHEL 6.2上,内核为2.6.32,在VMware ESX上虚拟化。 以下是iptables -nvL的完整输出: Chain INPUT (policy ACCEPT 40 packets, 2891 bytes) pkts bytes target prot opt in out source destination 0 0 LOG all — * * 0.0.0.0/0 222.192.124.3 LOG flags 0 level 4 prefix […]

在Linux上获得进程的IOPS

那么,我们应该阅读什么样的价值来获得每个进程每秒进出的操作呢? 我试过/ proc / [pid] / io,它返回这些值: root @ node:〜#cat / proc / 31597 / io rchar:213260190 wchar:462308212 syscr:23275044 syscw:47797624 read_bytes:894867968 write_bytes:27645691392 cancelled_write_bytes:0 来自定义: syscr,syscw – I / O操作数(分别为读和写)的计数器。 我们可以使用它来计算在一个系统调用中传递的平均数据量。 所以,我认为 syscw的最后一个值减去syscw的前一个值之后应该给我已经由进程31597执行的写操作计数 但是,当进程的写入速度大约为5MB / sec(小文件)时,写入的值为6500 IOPS,这对我来说不正确。 有任何想法吗?

整个块设备名为xvda1,xvda2而不是xvda,xvdb

我正在使用公共云中为我设置的虚拟机。 它在Xen虚拟机pipe理程序下以半虚拟化模式运行,并具有两个虚拟磁盘。 所以我期望虚拟磁盘块设备被命名为xvda和xvdb 。 但是,这台机器的设置方式,块设备名为xvda1和xvda2 。 请注意,这些不是分区名称。 它们是整个块设备的名称。 在/sys/block有xvda1和xvda2目录。 通常情况下,我期望在/sys/block下看到xvda和xvdb ,因为正如这里所logging的那样,Xen虚拟磁盘设备(整个磁盘)应该被命名。 查看/proc/partitions只有两个条目: xvda1和xvda2 。 在/dev ,也只有/dev/xvda1和/dev/xvda2 (no /dev/xvda或/dev/xvdb )。 我也看了看udev的规则,看看这些设备是否被有意的重命名了,但是在/etc/udev/rules.d下找不到任何东西。 这些设备是这些合法的名称,还是系统pipe理员做了某种错误configuration? 这些名字当然似乎与Linux内核的device.txt文档不一致。 或者这对Xen半虚拟化的VM来说是正常的?

如何限制后缀发送到某些域的电子邮件的数量,并通过使用邮件头控制它?

目标 我正在寻找一种解决scheme,以小时为单位限制发送给特定电子邮件运营商(几个顶级域名,我所知道的所有这些域名)的电子邮件的速率。 我还需要一些方法来控制每封邮件的速度,以便在每个小时内允许由postfix发送更多的电子邮件。 此操作员维护的所有地址的限制是全局的,重置每个整小时。 我到目前为止所做的 我使用后缀after_queue自定义filter,寻找我们的自定义标题指示优先。 filter接受的邮件数量保存在PostgreSQL数据库的脚本之外。 符合当前时间范围配额的邮件将作为接受传递给后缀,超出配额的邮件将使用tempfail返回码延迟。 用于向此特定运营商发送电子邮件的SMTP中继是单独的虚拟机,仅用于有限的电子邮件和运营商的popup。 根据要求定制filter效率是足够好的。 问题 基本上有两个问题: 我找不到在postfix队列中设置电子邮件优先级的方法。 如果我可以使用我们的自定义标题作为优先级指标,或者给电子邮件添加另一个优先级标记,并保证它将在非优先级消息之前被过滤和发送,那将是更可取的。 我想过使用多个实例(postmulti),但优先级必须是相对的,数字 – 这些用作外联邮件的配额修改器。 基本上:优先级为N的电子邮件使用电子邮件使用的1 / N配额,没有优先权。 优先级是很好的function,所以如果时间片配额正常工作,我们可以不用它。 由于电子邮件在应用filter后会返回队列,我们​​不能保证电子邮件将在接受的时间范围内真正发送。 后缀队列似乎不可能引导和控制实际吞吐量。 我的解决scheme的想法 从队列后自定义filter,而不是将消息返回到后缀队列,只需使用其他工具直接发送到目标SMTP并完全跳过后缀。 我不知道在Linux上是否有任何准备使用的smtp客户端来实现这样的任务。 另外,我们需要同步处理反弹消息(作为SMTP通信中的响应)和asynchronous(作为发送到返回path地址的状态电子邮件)。 我们还需要控制这种工具的Return-Path指向服务器发送的电子邮件。 作为最后的机会解决scheme,想法是推出自己的SMTP服务器,或者修改sendmail / postfix源码来满足我们的需求。 这是矫枉过正,直到没有其他选项可用。 题 什么Linux工具可以立即(不排队)中继电子邮件到收件人的SMTP服务器,并提供有效的退回消息? 或者,如果这个问题有更好的解决方法,我应该看什么工具?

监视到远程主机的Internet链接

我有一个运行Xivo的Debian Wheezy服务器(我们称之为A),这个服务器有2个接口: eth0和eth1 。 没有默认网关,只有less数服务器是从静态到达的eth0有一个公共IP,并直接连接到远程服务器(我们称之为B),A的第二个接口, eth1在另一个互联网的本地networking上连接应该被用于不同的目的。 在路由表A中,B通过接口eth0可达。 我想要的是build立一个故障转移路由,如果连接尝试在eth0失败,则尝试通过eth1进行连接。 我无法访问路由器,也不会涉及到外部A的dynamic路由。 到目前为止,我看到不同的东西,如ip rule , heartbeat HA和其他技术,但有了这个问题,我想要实现的是确定我想要做什么是可能的,如果可能的话,用什么样的技术。 编辑1 我决定改写我的问题,因为我觉得没有人知道。 如何监控从一台服务器到另一台服务器的链接,并在链接closures的情况下采取措施? 它也可以与arp分辨率有关,因为我虚拟连接到远程主机,我知道它的MAC地址。 我非常肯定互联网丛林中已经有了可能性,我不想为这个任务重新发力。 编辑2 由于脚本的解决scheme终于是我select的我会接受并奖励它,但是我添加了一个我使用脚本之前所尝试的所有编译