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

    Linux 下常用故障模拟方法

    Yiran\'s Blog发表于 2019-08-31 07:47:00
    love 0
    背景 链接到标题 在日常开发时,有时候需要保证自己代码的健壮性,需要模拟各种故障测试,比如:磁盘、网络、端口等,今天来汇总一下平时使用最多的几种故障模拟方法 磁盘 链接到标题 插入拔出 链接到标题 服务器的存储控制器如果是直通模式,那么在 OS 中能够直接获取到磁盘插入与拔出事件,有时候我们需要检测到相应的事件来自动化的做某些动作,具体的实现方式见之前的文章 Linux 下磁盘设备自动发现方式 。 那么我们写完了代码想要测试,不想去机房物理操作,怎么模拟呢? Hypervisor 链接到标题 如果你的代码部署的机器是一台虚拟机,那么在 Hypervisor 层面一般都会有对应的接口来完成相应的操作。 比如 Vsphere ESXi 中可以直接编辑虚拟机,在磁盘选项中有一个“移除”按钮,可以直接移除磁盘: 再比如 KVM 下,可以通过 Libvirt 接口来 detach 磁盘。 当然对于插入动作,Hypervisor 也会提供对应的功能。 物理服务器 链接到标题 如果 OS 不是在 Hypervisor 上,而是直接安装在了物理服务器上,我们怎么做呢? 通常我们服务器上的磁盘都是 SCSI 设备,会实现完整的 SCSI(接口),可以通过修改相应设备的标置文件来达到目的。 示例: 节点存在设备 /dev/sda ,修改标置文件,在系统中会发现磁盘已经被移除了。 [root@yiran ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk sr0 11:0 1 4.3G 0 rom /run/media/root/CentOS 7 x86_64 vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 3.


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