分类: 计算机 Computer

  • 通过”>”重定向日志,每次写入日志时会不会先把已有日志读入内存,然后再追加?

    疑问

    1. 假设有程序不断地输出日志到 /var/log/example.log
    [cc lang=”text”]
    # ./test.sh > /var/log/example.log
    [/cc]

    2. 假设这个程序会运行一年,日志量可能到达5GB.

    3. 程序在每次写入新日志的时候,“>”会不会先将 /var/log/example.log 的已有数据读入内存,再追加新的日子? 如果是这样,内存会被大量占用而影响系统性能。
    (更多…)

  • 怎样把文件清零,使得vmware能回收存储空间?

    正常情况下,在系统中删除一个文件,只会在文件系统层面把文件相应的 inode 信息删除,实际上数据仍存在于磁盘中。

    在vmware环境中,vmware实际上可以回收磁盘未被使用的空间,把空间留给其他虚拟机使用。

    所以,在删除文件的时候,可以将文件的数据清零,使vmware可以把空间回收。
    (更多…)

  • RHEL7 如何禁用 Gnome Tracker

    Gnome Tracker 主要做“全方位文件索引”。然而,有客户的服务器环境因为开了图形,磁盘被 tracker 的数据库塞满了。(听我一句劝,不要在服务器运行Gnome)

    然而,目前没有一键关停 Tracker 的方法。
    (更多…)

  • 使用 System V message queue 实现进程间通信

    被问到“Linux上用什么命令删除一个MQ”. 为了验证这个问题需要先整出来一个MQ,然后删除它。
    (更多…)

  • 设置RHEL7电源按钮的行为

    用户有时候会遇到在 RHEL7/ Centos7 中按下电源按钮,出现“诡异”现象。比如为什么按下电源键就黑屏了没关机。这里的“电源按钮”,包括了物理的按钮和虚拟机的“关机”按钮。

    RHEL7中的电源键行为主要有两个影响因素,systemd 和 gnome3.
    (更多…)

  • BIND+GeoIP: 根据查询者IP的地理位置给出不同的DNS结果

    为了能让访客访问到最快的服务器,可以在DNS上动手脚。有一些DNS服务商如dnspod可以根据DNS查询者的位置,给出相应的DNS解析结果。

    自己搭建DNS服务器,也可以实现类似效果。在 BIND 9.10 中,提供了 GeoIP 的功能,利用 GeoIP 库查询访客IP所在区域,根据区域给出结果。参考:
    https://kb.isc.org/article/AA-01149/0/Using-the-GeoIP-Features-in-BIND-9.10.html
    (更多…)

  • Pacemaker 集群中使用 fence_mpath 实现 multipath IO fence


    在集群中,如果一个节点出现故障,存活的节点会接管服务。但在接管服务之前,存活节点需要确定故障节点当前没有访问共享存储,fence 机制可以阻断故障节点访问存储,保证数据不被损坏。

    Normal 2-node cluster

    (更多…)

  • rpm是怎样安装/更新文件的?

    这个问题的更准确表述是,在用rpm命令更新软件包时,这个软件包里的某个文件是逐渐改变的,还是原子的?

    比如说,有一个软件包叫 fake-1.rpm,里面有A/B/C三个文件。这个软件包有一个更新版本 fake-2.rpm, 其中对B文件进行了变更。那么,在进行rpm的升级过程中,文件B会发生怎样的改变?在升级过程中,文件B有没有可能是不完整的?它的MD5值是yyy1234, yyy5678 还是其它值?
    [cc]
    fake-1.rpm (version 1)
    +——-+———+
    | Files | MD5 |
    +——-+———+
    | A | xxx1234 |
    +——-+———+
    | B | yyy1234 |
    +——-+———+
    | C | zzz1234 |
    +——-+———+

    fake-2.rpm (version 2)
    +——-+———+
    | Files | MD5 |
    +——-+———+
    | A | xxx1234 |
    +——-+———+
    | B | yyy5678 |
    +——-+———+
    | C | zzz1234 |
    +——-+———+
    [/cc]
    (更多…)

  • 文件系统的 nodev 挂载选项有什么用?

    nodev挂载选项有什么用?

    一些安全策略会要求,除了根目录(/),其他目录如果挂载了单独的分区,应该添加 nodev 挂载选项。
    所以 nodev 有什么用呢? mount 的 man 手册如此解释:
    [cc lang=”bash”]
    nodev Do not interpret character or block special devices on the file system.
    [/cc]
    好吧,看完我还是没理解这个选项到底是干嘛的。网上搜索到了几个回答[2][3]。如果在挂载时,添加了nodev选项,那么系统不会把该文件系统里面的 block/character 文件当作是 block/character 文件来处理。

    举个例子,一位别有用心的用户,在他有权限的机器上(比如他的笔记本),在U盘上创建了一个 block 文件,指向 sd* 之类的数据盘,这么巧他有权限把U盘插到服务器上,这么巧服务器自动挂载了这个U盘且没有 nodev 挂载选项,那么这位用户就能通过这个 block 文件读取到服务器上相应磁盘的数据。

    (更多…)

  • 在两节点Pacemaker集群中使用Quorum Device来避免fencing race

    使用场景

    两节点集群示例
    – 在一个两节点高可用集群中,心跳和fence设备不在同一个网络;
    – 如果心跳网络出现异常,两个节点则会出现分离;
    – 在 Corosync 2.x 中,两节点默认(必须)开启two_node模式,在这个分离的情况下,两节点均可达到quorate的状态;
    – 由于fence网络可以正常连同,两节点会互相fence对方,造成fencing race,两节点均被重启而无法提供服务;
    两节点心跳丢失示意
    (更多…)