IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Linux 下磁盘设备自动发现方式

    Yiran\'s Blog发表于 2019-08-02 23:10:04
    love 0
    背景 链接到标题 如果在 PC 上安装过 Linux,那么通常会遇到过硬件设备无法发现的问题,这类问题最终都可以通过 google 来解决掉。那么当我们在服务器场景下,如何做到设备自动发现且在设备发现后执行某些动作呢? 最近看了几个关于存储系统的 Operator 部分实现,记录一下。 命令行 链接到标题 最简单的肯定是我们写一个循环,永远检测我们要发现的设备,比如 lsblk 可以列举当前服务器所有 block 设备,那么我们就在循环内部执行 lsblk,diff 每次执行的结果,如果有新的设备,那么执行某些操作。 lsblk 是通过读取 /sys/block 下的具体目录判断的,那么我么也可以直接读取该路径下的目录来实现。 如果是网络设备也是一样,我们可以在循环内部执行 ip link list 来获取所有网络设备。 UDEV 链接到标题 照常先引用维基百科的解释: udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目錄底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。 如果你的 OS 是通过 systemd 来管理所有进程的话,那么可以发现一个服务叫做 systemd-udevd ,这个是 udev 的守护进程: [root@node90 19:58:10 ~]$systemctl status systemd-udevd ● systemd-udevd.service - udev Kernel Device Manager Loaded: loaded (/usr/lib/systemd/system/systemd-udevd.service; static; vendor preset: disabled) Active: active (running) since Fri 2019-06-14 15:25:55 CST; 1 months 18 days ago Docs: man:systemd-udevd.


沪ICP备19023445号-2号
友情链接