Articles of linux

使用RAID和LVM在Linux中validation分区

有谁知道validation在LVM和md RAID上的XFS文件系统在4096字节(又名“高级格式”扇形磁盘arrays上正确alignment的步骤吗? 一些参考是: http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/index.html http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/ 此外,这个问题的上下文是关于堆栈溢出的新的NAS: http : //blog.serverfault.com/post/798854017/the-theoretical-and-real-performance-of-raid-10

mdadm raid5恢复双磁盘失败 – 扭曲(驱动器顺序)

让我首先承认我犯了错误,并且对这个RAID上的大部分数据都有一个备份。 我仍然希望恢复其余的数据。 我没有那种把钱带到恢复专家公司的钱。 错误#0,没有100%的备份。 我知道。 我有一个4x3TB的mdadm RAID5系统。 驱动器/ dev / sd [be],全部使用一个分区/dev/sd[be]1 。 我意识到非常大的驱动器上的RAID5是有风险的,但我仍然做到了。 最近发生的事件 双驱动器故障后,RAID会降级。 一个驱动器[/ dev / sdc]确实没有了,另外一个[/ dev / sde]在重新上电后恢复,但不会自动重新添加到RAID中。 所以我剩下的只有2个活动驱动器[/ dev / sdb和/ dev / sdd]的4个设备RAID。 错误#1,不使用驱动器的dd副本来恢复RAID。 我没有驱动器或时间。 错误#2,没有备份其他驱动器的超级块和mdadm -E 。 恢复尝试 我重新组装了降级模式下的RAID mdadm –assemble –force /dev/md0, using /dev/sd[bde]1. 我可以访问我的数据。 我用备件replace了/dev/sdc ; 空; 相同的驱动。 我从RAID中删除了旧的/dev/sdc1 mdadm –fail /dev/md0 /dev/sdc1 错误#3, 在更换驱动器之前不要这样做 […]

iptables的大型环境pipe理工具

我正在使用的环境是一个大型的networking托pipe操作(pipe理几百个服务器,几乎所有的公共地址等等 – 所以谈论pipe理ADSL链接的任何事情都不太可能奏效),而且,重新寻找可以轻松pipe理核心规则集(当前计数的iptables中大约12,000个条目)以及我们为客户pipe理的基于主机的规则集。 我们的核心路由器规则集每天更改几次,基于主机的规则集每月可能会更改50次(在所有服务器上,所以每五台服务器每月可能会更改一次)。 我们目前使用的是filtergen(通常是球,在我们的规模上是超级球),而且我在其他工作中使用过shorewall(这对于filtergen来说更好一些,但是我认为有必要在那里比那更好)。 我们为任何替代系统提出的“必须”是: 必须快速生成一个规则集(在我们的规则集上运行filtergen需要15-20分钟;这只是疯狂的) – 这与下一点有关: 必须生成一个iptables-restore样式文件,并在一次命中中加载,而不是每个规则插入调用iptables 在规则集重新加载时,不得长时间取下防火墙(这也是上述结果) 必须支持IPv6(我们没有部署任何与IPv6不兼容的新function) 必须是无DFSG的 必须使用纯文本configuration文件(因为我们通过版本控制来运行所有的东西,使用标准的Unix文本操作工具是我们的SOP) 必须同时支持RedHat和Debian(包装首选,但至less不能公然敌视发行版的标准) 必须支持运行任意iptables命令来支持不属于系统“本地语言”的function的能力 任何不符合所有这些标准的将不被考虑。 以下是我们的“很高兴”: 应该支持configuration文件的“片段”(也就是说,你可以把一堆文件放在一个目录中,然后对防火墙说“在规则集中包含这个目录中的所有内容”);我们广泛使用configurationpipe理,并希望使用此function自动提供服务特定的规则) 应该支持原始表格 应允许您在传入数据包和拒绝规则中指定特定的ICMP 应该优雅地支持parsing到多个IP地址的主机名(我们已经被filtergen捕获了几次,这是一个相当大的痛苦) 该工具支持的更多的可选/奇怪的iptablesfunction(本地或通过现有的或易于写入的插件)更好。 我们现在使用的是iptables的奇特function,而那些“正常工作”的function越多,对大家越好。

如何在启动时为服务设置ulimits?

我需要mysql来使用大页面来设置ulimit – 我在limits.conf中做了这个。 但是,limits.conf(pam_limits.so)不能读入init,只能读取“真实”的shell。 我之前通过在initscript start函数中添加一个“ulimit -l”来解决这个问题。 我需要某种可重复的方式来做到这一点,现在这些盒子是由厨师pipe理的,我们不想接pipe一个由RPM实际拥有的文件。

在主机文件系统中安装Docker容器内容

我想能够检查一个Docker容器的内容(只读)。 一个优雅的方法是将容器的内容挂载到目录中。 我正在讨论在主机上安装容器的内容,而不是在容器内的主机上安装一个文件夹。 我可以看到现在在Docker中有两个存储驱动程序:aufs和btrfs。 我自己的Docker安装使用btrfs,并浏览到/ var / lib / docker / btrfs / subvolumes显示系统上每个Docker容器的一个目录。 但是这是Docker的一个实现细节,挂载这些目录到别的地方感觉不对。 有没有这样做的正确方法,或者我需要修补Docker来支持这些types的坐骑?

为什么我的SSH超时因networking位置而异?

当我从家里进入我们的一台办公室服务器(运行Fedora 10)时,会话经过相当短的时间(5分钟左右)就超时了。 我已经尝试在客户端使用TcpKeepAlive ,没有任何效果。 我不明白的是,如果我在公司局域网的办公室里,我可以整天闲置一段时间,而不会超时,所以这种行为似乎取决于我的位置。 任何想法为什么发生这种情况,以及如何防止当我不在局域网上超时? 如果有帮助,我在Mac OSX上使用terminal客户端。 更新 – 戴夫德雷格的build议使用ServerAliveInterval设置为非零与TcpKeepAlive=no为我工作。 关于其他一些答案,Mac OSX SSH客户端不接受ClientAlive …设置。

使用rsync将文件从源文件移动到目标文件?

rsync是我的项目的一个不错的select? 我不得不 : – 通过SSH将文件从源文件复制到目标文件夹, – 确保所有文件都被复制, – 复制后删除源文件。 – 如果我有冲突名称,我必须重命名文件。 它看起来像我可以使用选项: – 删除源文件(删除源文件) 但rsync如何pipe理冲突,我可以有规则吗? 用例在我的项目上: 我在服务器A上运行科学计算,结果被插入文件夹“process”中,对于每个计算,我都有一个这样的存储库:/ process / calc1。 现在我想将库“/ calc1”传输到服务器B(我得到/ process / calc1),并从服务器A中删除“calc1”。 …在另一个计算中,我得到了服务器A上的“/ process / calc2”,这个想法也是在服务器B上的“/ process /”目录中移动“calc2”,然后我现在在服务器B上: – / process / calc1 – / process / calc2 (和/ process /在服务器A上是空的)。 如果在新计算(如果服务器B上已经存在“/ process / calc1”)之后,服务器A中有另一个文件夹如“/ process / calc1”,rsync如何pipe理冲突(在服务器B上)? 是否可以用rsync添加规则,并在服务器B中通过“process / calc1R2”重命名“/ process […]

即使在需要pam_limits.so时,ulimit也不会读取打开的文件描述符limits.conf设置

我正在尝试提高ubuntu机器上所有用户的打开文件描述符最大值。 我已经/etc/security/limits.conf添加到/etc/security/limits.conf : * soft nofile 100000 * hard nofile 100000 而且,基于这个问题,我已经检查了pam_limits的/etc/pam.conf设置: $ grep "pam_limits" /etc/pam.d/* /etc/pam.d/atd:session required pam_limits.so /etc/pam.d/common-session:session required pam_limits.so /etc/pam.d/cron:session required pam_limits.so /etc/pam.d/login:session required pam_limits.so /etc/pam.d/sshd:session required pam_limits.so /etc/pam.d/su:session required pam_limits.so /etc/pam.d/sudo:session required pam_limits.so 而我的文件最大似乎是罚款: $ cat /proc/sys/fs/file-max 762659 但是我仍然有默认的1024当我检查ulimit -a : $ ulimit -a | grep files open files (-n) 1024 […]

为什么这个ldapadd命令退出“无效的语法”错误?

我对openldap很陌生,但对linux / unix环境非常熟悉。 我想在这里使用指南设置我的第一个testingopenldap环境。 我也读了大部分的pipe理员指南,我不得不承认,这是很多。 所以下面的Ubuntu的基本设置指南,我创build了一个ldif文件,看起来像这样: dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups dn: cn=engineers,ou=Groups,dc=example,dc=com objectClass: posixGroup cn: engineers gidNumber: 5000 dn: uid=john,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: johnldap gecos: John Doe […]

/ etc / hosts是否应该包含“127.0.0.1 localhost myhost.example.org myhost”这样的条目?

在查看各种Linux和FreeBSD系统时,我注意到在某些系统上, /etc/hosts包含一个用于主机的公用主机名的条目,但不包含其他系统上的主机名。 这里最好的做法是什么? 我的/ etc / hosts文件是否应该包含主机FQDN(例如myhost.example.org)和短主机名(例如myhost)的条目? FQDN的logging应该指向本地主机还是指向该主机的外部IP? 例如,许多RHEL / EL盒子上的默认configuration不会将公共主机名放在/etc/hosts : myhost # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 myhost # 另一种变体是主机的短主机名和FQDN也指向127.0.0.1。 我被告知,这是一个古老的做法,在这些日子里皱起了眉头,但许多pipe理员仍然这样做。 myhost # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 myhost # 第三种变体是主机的FQDN和短主机名被赋予主机的外部IP地址。 这第三个variables对我来说似乎是最优的,因为它减less了对DNS服务器的查询。 myhost # cat /etc/hosts 127.0.0.1 […]