Articles of linux

Linux – 磁盘/文件系统作为LRUcaching(透明到期)

我有一个情况,我想要使用本地磁盘作为从单独的Web服务(类似S3)(热)文件的LRUcaching。 如果文件不存在于磁盘上,则通过互联网读取文件,写入本地磁盘,然后未来的请求可以使用本地caching而不是从原始源读取。 由于存储在Web服务中的数据量将超过本地存储,因此,如果存储已满,则在写入新文件时,我希望自动清除本地文件。 如果可能的话,我想避免这样的情况,即我有一个cron任务,在一定时间后检查atime和过期文件,因为如果没有文件正在写入,没有特别的理由会根据时间过期caching项目。 我试过find类似tmpfs的东西,它允许我像使用caching的应用程序一样,尽可能透明地实现类似于纯磁盘支持的caching(在SSD上),但是我一直无法find实现此function的任何东西(类似于CacheFS为NFS所做的,但是以更一般的方式)。

CentOS 6本地更新存储库和安全更新

我知道官方的CentOS 6(甚至7)更新存储库不提供安全信息。 结果是yum-plugin-security插件和yum check-update –security命令不会像RHEL或OEL发行版一样列出任何更新。 有一个很好的脚本generate_updateinfo ,它能够将缺less的安全信息注入到本地的yum仓库。 该插件即使在CentOS上也能工作。 不幸的是,我有一个小问题。 我不确定问题出在脚本上还是与yum工作有关。 如何重现这个问题(在CentOS 6.8,x86_64上testing过,但IMO,之前的/新版本的问题都是一样的): 首先,让我们清理干净的表格 yum clean all 让我们看看有什么安全更新可用(系统不是最新的) yum check-update –security … 56 package(s) needed for security, out of 28 available kernel.x86_64 2.6.32-642.15.1.el6 local-centos-6-x86_64-updates kernel-devel.x86_64 2.6.32-642.15.1.el6 local-centos-6-x86_64-updates kernel-firmware.noarch 2.6.32-642.15.1.el6 local-centos-6-x86_64-updates kernel-headers.x86_64 2.6.32-642.15.1.el6 local-centos-6-x86_64-updates libtiff.x86_64 3.9.4-21.el6_8 local-centos-6-x86_64-updates openssl.x86_64 1.0.1e-48.el6_8.4 local-centos-6-x86_64-updates sudo.x86_64 1.8.6p3-25.el6_8 local-centos-6-x86_64-updates 现在,让我们安装例如squid包 yum install -y […]

VMware眩晕后立即修复系统时钟

这是VMware的一个已知问题,在某些操作(例如vmotion和快照创build/删除)期间,它会执行所谓的“眩晕”。 在这个眩晕期间,客户操作系统被冻结,所以当它返回时,系统时钟落后。 现在,晕厥通常在人类(亚秒)方面非常快,但从机器方面讲,他们相当长,几百毫秒。 随着磁盘越来越大或内存越来越多,这些虚拟机通常更为关键。 通过相互通信的系统,这些时间差异可能会导致问题。 但无论如何,我想要解决的问题是时钟。 最终的要求是在发生眩晕后立即使系统时钟恢复同步。 “立即”可能是一个模糊的术语,所以让我们说在1秒内时钟应该重新同步。 我们使用ntp进行时钟同步,但ntp需要几分钟(或更长时间)才能使系统重新同步,因为它不知道发生了什么。 再次validation时间是否稳定(漂移率没有增加)需要一段时间,然后慢慢纠正。 所以速度不够快 我得到的最好的想法是在发生眩晕时立即运行ntpdate ,但是我不知道有什么方法让客户操作系统发现眩晕发生了。 有问题的系统是Linux(CentOS / 7)。

检测到不正确的CPU线程编号

我已经采购了HP DL360 G7二手。 我想知道这是否是在操作系统或硬件故障。 安装了2个Intel Xeon X5650 CPU,每个CPU都带有6个启用线程的内核。 逻辑会build议这会给我总共24个CPU线程,其中最高的CPU是23(从0开始)。 然而,/ proc / cpuinfo的输出显示了一个奇怪的结果,这是错误的: root@HP-DL360-1:~# cat /proc/cpuinfo | grep processor | wc -l 24 root@HP-DL360-1:~# cat /proc/cpuinfo | grep processor | tail -n 2 processor : 26 processor : 27 有线程24,25,26和27代替线程12,13,14,15。在正常情况下,我不会被这个困扰,只会继续使用正常的系统。 但是因为我打算使用这个系统进行虚拟化,Proxmox具有正确编号的CPU线程/内核是必要的。 如果这是一个硬件故障,我需要购买一个替代品。 如果这是操作系统或软件相关的提示如何解决将不胜感激。 编辑:iLO报告“确定”系统健康。

LVM相关stream程完全挂起

此问题属于虚拟机通过LVM获取其存储的KVM节点。 所以每个虚拟机都有自己的逻辑卷。 每晚一些虚拟机备份(快照 – dd [..] | ssh [..] – 没什么特别的)。 不过,昨晚这个搞砸了LVM系统。 在第二次备份开始2-3分钟后,内核开始logging“挂起的任务” – 简而言之,它将三个qemu-kvm进程报告为挂起和dd进程。 至less有一台虚拟机(这是我们监控的托pipe服务器)出现故障 – 更确切地说,它还在运行,但服务不再有任何回应。 VNC在虚拟机内显示挂起的任务。 硬复位(和迁移 – 见下文)后,虚拟机是好的,但dd进程永远不会终止( kill -9什么也不做),像lvdisplay这样的命令不再工作 – 他们只是没有任何东西。 lvmetad也不能重启,属于LVM的每个进程都不能被lvmetad 。 他们永远挂在磁盘状态,而节点一般运行良好。 由于virsh shutdown也不能工作了 – “设备或资源繁忙”,所以发生故障的VM必须迁移到另一个节点。 但其他的虚拟机也在继续工作。 几个星期前,我们在另一个节点上运行了这个function,“快照”虚拟机也出现故障,执行了从4.4到4.9的内核升级(因为我们不得不重新启动机器),并没有再次看到这样的问题。 但是,由于今天出现问题的节点已经有两个月的正常运行时间,这并不是说这个问题确实是固定的。 所以 – 在这个日志里有没有人能看到比我们更多的东西呢? 这将不胜感激。 谢谢阅读! Apr 28 00:37:15 vnode19 kernel: INFO: task qemu-kvm:32970 blocked for more than 120 seconds. […]

我试图解决极高的磁盘IO等待时间。 你能告诉我这个iotop输出应该让我看看吗?

Total DISK READ : 526.37 K/s | Total DISK WRITE : 111.99 K/s Actual DISK READ: 526.37 K/s | Actual DISK WRITE: 89.59 K/s PID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 209 be/3 root 0.00 B 3.40 M 0.00 % 16.03 % [jbd2/xvda1-8] 6 be/4 root 0.00 B 0.00 B 0.00 % […]

最好的部署和configuration工具,用于连接有限的互联网服务器

我正在寻找Linux服务器部署和configurationpipe理的最佳可用选项。 不幸的是,这不是服务器放置在数据中心的典型场景。 相反,我们有多个有限的互联网连接的远程服务器(在船上)。 基于重要性的要求摘要: configuration工具必须使用拉式模型。 到远程服务器的networking连接是困难的或不被允许的。 带宽是非常有限的和昂贵的。 互联网连接是通过卫星使用计量连接。 互联网连接由于卫星而具有高延迟和分组丢失。 networking连接可能几个小时甚至几天不可用。 互联网连接恢复时,必须应用configuration更改。 无需连接互联网即可运行。 这是最后的重要性,我们可以没有它的生活。 例如,在更新的情况下,可能的实现是使用USB驱动器发送configuration工具所需的文件。 Linux服务器可以使用shell脚本来复制USB数据并更新其configuration状态。 所有服务器将使用CentOS 7作为操作系统。 操作系统更新将使用USB驱动器或本地存储库进行处理。 所有服务器将在离开我们的场所并前往远程位置之前进行初始configuration。

在用户注销时如何处理不间断睡眠中的进程?

我想问一下当用户注销时Linux进程中“D”不可中断睡眠状态的进程的影响。 即使在磁盘睡眠中持续存在的不可用的用户进程的情况下,甚至有可能通过注销(不closures或重新启动)来结束用户会话,或者系统在注销时尝试冻结/崩溃? 如果注销过程成功,注销成功,过程会发生什么? 它是否成为孤儿和重新安置? 它会继续到下一个用户会话吗? 另外,如果进程在进入不可中断睡眠之前正在访问共享内存段,那么共享内存和使用它的其他进程会发生什么情况? 他们是否也受到影响? Linux系统如何处理这种情况? 这个状态很难有目的地重现,所以我不能想出一个方法来自己testing,以便知道答案。 如果在某个地方出现过类似的问题,我很抱歉。 我已经尝试过search各种Linux网站和留言板来解答这些问题,但是大多数网页似乎只是解释了不间断睡眠以及如何防止/解决问题。 我没有设法find任何资源来解释用户会话结束而不重新启动系统时发生的这种过程。 大多数来源只是build议重新启动系统来摆脱它。

Postfix身份validation不在nodemailer中工作

我有以下作为我的nodemailer脚本: 'use strict'; const nodemailer = require('nodemailer'); // create reusable transporter object using the default SMTP transport let transporter = nodemailer.createTransport({ host: 'localhost.com', port: 465, secure: true, auth: { user: 'user', pass: 'pass', } }); module.exports = (msg) => { let { from, to, subject, html } = msg; // setup email data with unicode […]

我见过的最奇怪的docker错误

我在我的一台服务器上使用docker-mailserver的Docker。 将一些服务从传统的Debian Jessie服务器迁移到Ubuntu 16.04 LTS服务器后出现了一个非常奇怪的麻烦。 服务器参数: 遗产: someuser@legacyserver:~$ uname -r 3.16.0-4-amd64 someuser@legacyserver:~$ dpkg -l | grep systemd …215-17+deb8u7… someuser@legacyserver:~$ cat /proc/cmdline root=ZFS=rpool/ROOT/debian-1 ro boot=zfs quiet 新服务器: someuser@newserver:~$ uname -r 4.4.0-21-generic someuser@newserver:~$ dpkg -l | grep systemd …229-4ubuntu4… someuser@newserver:~$ cat /proc/cmdline root=ZFS=rpool/ROOT/debian-1 apparmor=0 ro 我在systemd-nspawn Debian Jessie容器中的docker上运行docker-mailserver。 我鼓励的第一个问题是在新systemd上的只读cgroup,这解决了这个问题: mount | grep cgroup | tail -n +2 […]