如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间程序。 目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。下面我我们来看看如何管理udev设备。 实际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么。但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置,这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件。你可能也想知道如何修改RS-232串口,音频设备等文件的属组或者权限。这点在实际的Linux实施中是会遇到的。 为什么使用udev 在此之前的设备文件管理方法(静态文件和devfs)有几个缺点: * 不确定的设备映射。特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定。举一个例子:如果你有两个USB打印机。一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1。但是到底哪个是哪个并不清楚,lp0,lp1和实际的设备没有一一对应的关系,因为他可能因为发现设备的顺序,打印机本身关闭等原因而导致这种映射并不确定。理想的方式应该是:两个打印机应该采用基于他们的序列号或者其他标识信息的唯一设备文件来映射。但是静态文件和devfs都无法做到这点。 *没有足够的主/辅设备号。我们知道,每一个设备文件是有两个8位的数字:一个是主设备号 ,另外一个是辅设备号来分配的。这两个8位的数字加上设备类型(块设备或者字符设备)来唯一标识一个设备。不幸的是,关联这些身边的的数字并不足够。 */dev目录下文件太多。一个系统采用静态设备文件关联的方式,那么这个目录下的文件必然是足够多。而同时你又不知道在你的系统上到底有那些设备文件是激活的。 *命名不够灵活。尽管devfs解决了以前的一些问题,但是它自身又带来了一些问题。其中一个就是命名不够灵活;你别想非常简单的就能修改设备文件的名字。缺省的devfs命令机制本身也很奇怪,他需要修改大量的配置文件和程序。; *内核内存使用,devfs特有的另外一个问题是,作为内核驱动模块,devfs需要消耗大量的内存,特别当系统上有大量的设备时(比如上面我们提到的系统一个上有好几千磁盘时) udev的目标是想解决上面提到的这些问题,他通采用用户空间(user-space)工具来管理/dev/目录树,他和文件系统分开。知道如何改变缺省配置能让你之大如何定制自己的系统,比如创建设备字符连接,改变设备文件属组,权限等。 udev配置文件 主要的udev配置文件是/etc/udev/udev.conf。这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:
udev 是一个为你的计算机提供设备事件的 Linux 子系统。通俗来讲就是,当你的计算机上插入了像网卡、外置硬盘(包括 U 盘)、鼠标、键盘、游戏操纵杆和手柄、DVD-ROM 驱动器等等设备时,代码能够检测到它们。这样就能写出很多可能非常有用的实用程序,而它已经很好了,普通用户就可以写出脚本去做一些事情,比如当某个硬盘驱动器插入时,执行某个任务。
描述: Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等。通过观察这些设备的内核设备名称,用户通常能知道这些是什么类型的设备,但是不知道哪一个设备是他们想要的
Write a Custom udev Rule for iSCSI Storage
存储的配置总结下只有2步:持久化配置 和 权限配置 。一般来说这两步是可以合在一起的,只是使用多路径软件时需要分开来讲(多路径软件多了一个多路径聚合的步骤)。
在使用CentOS Linux的过程中,有时候会遇到一个错误信息,提示“Device eth0 does not seem to be present”的问题。这个错误通常发生在网络配置方面出现问题的情况下,导致网络接口 eth0 无法正常识别。 在本篇博客文章中,我们将介绍解决这个问题的一些方法。
另一方面,虽然现在已经不住在农村了,但我一直坚定不移的认为,这个世界,最慢的是我家的网速,最快的是我家电表的转速.
最近工作计划本来是重写CameraCtrl 控制类以及实现推流。但是由于需求变动导致之前调研废弃,就暂时放这吧。
Linux 能够出色地自动识别、加载、并公开接入的无数厂商的硬件设备。事实上,很多年以前,正是这个特性说服我,坚持让我的雇主将整个基础设施转换到 Linux。痛点在于 Redmond 的某家公司(LCTT 译注:指微软)不能在我们的 Compaq 台式机上加载集成网卡的驱动,而 Linux 可以轻松实现这一点。
◆ 一、概述 RAC数据库扩容存储空间,新挂载过来的盘没有识别到,通过fdisk -l命令没有看到。经查询需要重启或者扫描来看到新挂载的磁盘,今天分享一下具体的方法 环境:OEL 6.4 和 RAC 11.2.0.4 ◆ 二、关键事项 不要使用/dev/sdX 或 /dev/dm-XX 作为设备名称,因为此设备名称在重新启动后可能会更改 使用WWID 识别设备 全局标识符 (WWID) 可用于可靠地识别磁盘设备。 WWID 是 SCSI 标准要求所有 SCSI 设备提供的持久的、独立于系统的 ID。 ◆ 三
相信有些同学在带电脑外出的过程中可能遇到一个场景:小乌鸦在咖啡厅用着笔记本电脑,忽然劫匪冲了进来,趁小乌鸦喝水的时候,抢走了他的装有linux系统的电脑,而此时你已经登陆进系统了,甚至连入公司V屁N网络了,接下来就是任由宰割的时候了,怎么办?
客户一套RAC环境是华为的存储,共享盘是/dev/sd*,咋一看还怀疑是没有进行多路径配置,实际和主机工程师是已经配置好的,我们使用upadmin show vlun命令可以查看到:
devfs(设备文件系统)是由Linux2.4内核引入的,它的出现主要使得设备驱动程序能够自主管理自己的设备文件。具体来说,devfs具有如下优点:
一、多路径+UDEV 1、使用多路径multipath挂载需要挂载的盘:mpath*格式。 cat </etc/multipath.conf defaults { user_friendly_names yes } blacklist { devnode "^sda" } EOF multipath -F multipath -v2 2、将多路径盘的UUID输出到udev_info文件中 cd /dev/mapper for i in `ls mpath*`; do printf "%s %
到这里已经可以在系统中看到openfiler的磁盘,可是重启后路径名会改变,这时需要利用udev固定路径名
设备上有2个网卡,在设置也区别了eth0和eth1,直到设置eth0无效时才发现有了问题。 克隆后在ifconfig时候发现网卡名字eth3 或者eth4 而不是默认的eth0
1. udev 和mdev 是两个使用uevent 机制处理热插拔问题的用户空间程序,两者的实现机理不同。udev 是基于netlink 机制的,它在系统启动时运行了一个deamon 程序udevd,通过监听内核发送的uevent 来执行相应的热拔插动作,包括创建/删除设备节点,加载/卸载驱动模块等等。
上次介绍了一个系统启动预留脚本,今天介绍的这个脚本小技巧是U盘自动运行脚本,这个脚本相当于系统的一个功能扩展接口,可以实现好多扩展功能!
igb_uio 是 dpdk 内部实现的将网卡映射到用户态的内核模块,它是 uio 模块的一个实例。
如上图的100ask6ull开发板,⑦为USB口,U盘从这里插入;⑱为mico sd卡槽,micro sd卡可以直接从这里插入。
RHEL 7.2使用EMC Powerpath扩容2T磁盘空间,需要添加至以用12C RAC for ASM系统中。下面是具体步骤,主机人员告知扩容别名为data_center_16、data_center_17
前阵子碰到suse linux下网卡重命名的问题,是在虚拟机上安装RAC,通过复制虚拟机后需要完成的。与redhat linux,以及oralce linux不同的处理方式,下面将其记录下来,供参考。
原理是mac地址冲突,解决办法就是删除/etc/udev/rules.d/70-persistent-net.rules这个文件。 rm -rvf /etc/udev/rules.d/70-persi
本文总结了USB总线驱动程序的实现原理和流程。首先介绍了USB总线驱动程序的基本概念和作用,然后详细阐述了USB总线驱动程序的实现流程,包括设备加载、设备初始化、设备配置、设备接口、端点、读写请求、中断和轮询机制。最后对USB总线驱动程序中涉及到的几个重要概念进行了详细说明。通过本文的总结,可以更好地理解USB总线驱动程序的实现原理和流程,为后续的USB驱动开发打下坚实的基础。
目录 使用 df 命令检查 Linux 中的磁盘空间 以人类可读的格式显示磁盘空间使用情况 检查特定文件系统磁盘空间 查看输出中的特定字段 检查 Linux 上的 inode 使用情况 使用 du 命令检查 Linux 中的磁盘空间 检查文件磁盘使用情况 检查目录磁盘使用情况 这 df 命令代表 disk filesystem. 它用于获取Linux 系统上文件系统的可用和已用磁盘空间使用情况的完整摘要。 这 du 命令,简称 disk usage, 用于估计文件空间使用情况。该du命令可用于跟踪占用硬盘驱
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如果在Windows平台进行Android开发或者使用adb工具,你不得不安装对应的USB驱动,各种厂商驱动都不相同。
mkinitrd命令用于建立要载入ramdisk的映像文件,供Linux开机时使用。
Linux 电脑挂了一个 Windows 虚拟机,但是有些东西还得是真机才管用,比如 Windows 大型独占软件,或者备份国内某空间占用贼大但只要你一找文件它就告诉你文件已过期的社交软件的聊天记录。备份可以在虚拟机中完成,但是只能是电脑连接手机热点,速度太慢了咱没那时间。
关于RHEL6安装RAC权限绑定问题 红帽企业版 Linux 6.0 开始弃用 /etc/multipath.conf 配置文件中的mode、uid 和 gid 参数。device-mapper 设备的权限(包括 multipath 映射)由 udev 规则设定,在我们安装RAC的过程中,对权限的给予是一个比较麻烦的问题,一般来说,无论是RHEL5还是RHEL6我们都会通过UDEV来对权限做很好的控制,一下说明在RHEL6下通过两种方法对磁盘权限做控制
首先,需要安装Openfiler系统(类似安装Linux),我这里设定的IP地址:10.10.10.10(与RAC服务器网络相通)。安装完毕后通过web访问管理 https://10.10.10.10:446
如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障。
有设备就说明成功了, 如果没有看看自己手机的开发者模式有没有打开, 不同手机的开发者模式位置不同, 自行百度
This chapter is a basic tour of the kernel-provided device infrastructure in a functioning Linux system.
注意:该变更在重启后失效,如需固定需要在/etc/rc.d/rc.local文件中放入该命令
(测试环境:CentOS-6.0-x86_64-bin-DVD1.iso+Vmware)
原作者:Bane Radulovic 译者: 赵恩东 审核: 魏兴华 DBGeeK社群联合出品 当使用ASMLIB 来管理ASM 磁盘时,设备的路径信息是不会在gv$asm_disk视图p
由于集群是生信所有分析工作的基础,我们所用的 IBM LSF 集群一共有 30 多个计算节点,其中还包括了 2 个大内存 fat 节点,log 节点挂掉后,整个生信部门几十号人的工作都没法正常进行,情况可谓是非常紧迫。负责硬件的同事在加班加点联系供应商更换主板后,终于可以把系统启动起来,但是问题也来了:
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
1)现象说明 公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不同了,进一步排查,重启网卡,提示之前的eth0和eth1网卡设备发现不了了,也就是说服务器主板更换后,之前的网卡设备都识别不了了! 主板更换后,重启并登陆服务器,发现之前的网卡设备(eth0、eth1、eth2、eth3)都没有了! [root@kevin01 ~]# ifconfig -a bond0 Link enc
eth(Ethernet的缩写)新安装的虚拟机为eth0,为什么原来的eth0会变成eth1?
Linux平台 Oracle 19c RAC安装指导: Part1:Linux平台 Oracle 19c RAC安装Part1:准备工作 Part2:Linux平台 Oracle 19c RAC安装Part2:GI配置 Part3:Linux平台 Oracle 19c RAC安装Part3:DB配置
大多人出现这个错误是因为虚拟机克隆导致的网卡mac冲突(因为我就是VMware的虚拟化环境,通过模块克隆多台服务器),修改ifcfg-eth0中HWADDR=新的mac或者删掉重启机器,最好删除或者注释掉。
事情是这样的,各位看官且看之,中秋国庆期间测试机房由于线路变更需要断电,故需要关掉所以测试机器,等待变更完成后,测试环境的 RAC 有一个节点数据库启动不了,检查发现节点 2 的 ARCH 磁盘没有正常挂载。
需求描述 默认情况下磁盘可以使用by-id/by-partlabel/by-parttypeuuid/by-partuuid/by-path/by-uuid等多种形式的名称对磁盘设备进行管理,但是在ceph中,如果磁盘数量过多,加上为了更好的区别每一个OSD对应的磁盘分区用途(比如filestore or journal),同时确保物理磁盘发生变更(故障盘替换后)后对应的名称不变,对OSD对应的磁盘设备命名提出新的管理需求。 本例使用udev的方式,将磁盘按照osd[N]的方式进行命名,比如/dev/osd
安装依赖包 apt-get install ntfs-3g apt-get install samba 编辑samba vi /etc/samba/smb.conf #add [media] comment = Temporary file space path = /media read only = no public = yes 重启samba服务 /etc/init.d/samba restart USB自动挂载 挂载好麻烦,自动脚本来帮忙,使用的技术叫做udev
Linux的设备模型是操作系统管理硬件设备的一种高级抽象,它不仅涉及到设备驱动程序的加载和卸载,还包括设备之间的关系、设备的状态管理以及与用户空间通信的机制。理解Linux的设备模型对于应用开发人员来说至关重要,它有助于开发出更加稳定、高效的应用程序。🌟
领取专属 10元无门槛券
手把手带您无忧上云