AIX 共享磁盘中的字符设备(/dev/rhdiskn)及块设备(/dev/hdiskn)

AIX 6.1 ,  Oracle 11.2.0.1 ,   ASM  

      在配置ASM 共享磁盘时,通过 lspv 查看到/dev 下有很多 hdiskn 及 rhdiskn 的设备, 那么在使用hdiskn作为共享磁盘的时候一定注意使用的文件是/dev/rhdiskn,而不是/dev/hdiskn, 因为rhdiskn是字符设备,hdiskn是块设备。

      那么 /dev/hdisk 和 /dev/rhdisk 具体的区别是什么 ? 

    系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式。
 另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。

 这两种类型的设备的根本区别在于它们是否可以被随机访问——换句话说就是,能否在访问设备时随意地从一个位置跳转到另一个位置。举个例子,键盘这种设备提供的就是一个数据流,当你敲入“fox” 这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由三个字符组成的数据流。如果让键盘驱动程序打乱顺序来读字符串,或读取其他字符,都是没有意义的。所以键盘就是一种典型的字符设备,它提供的就是用户从键盘输入的字符流。对键盘进行读操作会得到一个字符流,首先是“f”,然后是“o”,最后是“x”,最终是文件的结束(EOF)。当没人敲键盘时,字符流就是空的。硬盘设备的情况就不大一样了。硬盘设备的驱动可能要求读取磁盘上任意块的内容,然后又转去读取别的块的内容,而被读取的块在磁盘上位置不一定要连续,所以说硬盘可以被随机访问,而不是以流的方式被访问,显然它是一个块设备。

 内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对硬盘每多一分利用都会对整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大的施展空间。

 简单来讲,块设备可以随机存取,而字符设备不能随机存取,那裸设备又该如何解释呢?

 难道裸设备,如磁盘裸设备也不能随机读取吗?那在数据库中用裸设备建一个2g的数据文件,为了存取最后一个数据块,难道Oracle还要把前面的所有数据块都读一遍,显然不符合事实,如果这样解释呢,操作系统不能随机读取,并不意味着数据库也不能随机读取。

 块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接物理磁盘读取。不经过系统缓存。(如键盘,直接相应中断

原文链接:http://www.linuxidc.com/Linux/2008-08/15306.htm

 

时间: 2024-10-30 10:23:39

AIX 共享磁盘中的字符设备(/dev/rhdiskn)及块设备(/dev/hdiskn)的相关文章

《嵌入式Linux开发实用教程》——4.3 块设备驱动

4.3 块设备驱动 嵌入式Linux开发实用教程 块设备和字符设备从字面上理解最主要的区别在于读写的基本单元不同,块设备的读写基本单元为数据块,数据的输入输出都是通过一个缓冲区来完成的.而字符设备不带有缓冲,直接与实际的设备相连而进行操作,读写的基本单元为字符.从实现的角度来看,块设备和字符设备是两种不同的机制,字符设备的read.write的API直接到字符设备层,但是块设备相对复杂,是先到文件系统层,然后再由文件系统层发起读写请求. 数据块指的是固定大小的数据,这个值的大小由内核来决定.一般

《unix设备驱动》块设备驱动程序(加示例代码)

块设备驱动程序 一个块设备驱动程序主要通过传输固定大小的随机数据来访问设备. 块驱动程序是在核心内存和其他存储介质之间的管道,因此他们可以认为是虚拟内存子系统的组成部分.   一些概念 一个数据块指的是固定大小的数据,而大小的值有内核决定  与数据块对应的是扇区,它是由底层硬件决定大小的一个块.  无论何时内核向用户提供一个扇区编号,该扇区的大小就是512字节. 注册 注册的目的:使内核知道设备的存在 注册块设备驱动程序 注册到内核 int register_blkdev(unsigned in

《嵌入式Linux开发实用教程》——第4章 Linux设备驱动程序设计 4.1 设备驱动概述

第4章 Linux设备驱动程序设计 4.1 设备驱动概述 Linux系统将设备分成3种基本类型:字符设备.块设备.网络接口. (1)字符设备 字符设备是一个能够像字节流一样被访问的设备,字符终端(/dev/console)和串口(/dev/ttys0)就是两个字符设备.字符设备可以通过文件系统节点来访问,比如/dev/tty1和/dev/lp0等.这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道. (2)块设备 块设备和字

ceph 块设备

数据的存储设备? 数据的存储有3种形式,1种是直接以二进制数据的形式存储在裸设备(包括块设备)上,另外一种是以文件的形式经过文件系统管理进行存储.第三种就是以对象的形式进行对象存储.本篇讨论围绕着块设备形式的存储. 什么是块设备?  块设备将信息存储在固定大小的块中,每个块都能进行编址.块设备的基本特征是每个块都能区别于其它块而读写.块设备也是底层设备的抽象,块设备上未建立文件系统时,也称之为裸设备. 块设备与ceph的联系?  client想要把数据存储到ceph的集群中时,他必须要有一个读写

如何在VirtualBox中的Linux客户机系统间共享磁盘

如何在VirtualBox中的Linux客户机系统间共享磁盘 在本教程中,让我来给你们展示一下如何在VirtualBox中的两个Linux客户机系统间共享一个磁盘. 本教程对于那些想配置一下并玩玩GFS或者集群的人来说还是很有帮助的. 下图是VirtualBox的标准界面: 第一个客户系统机CentOS1: 第二个客户机系统CentOS2: 给第一台机器添加额外的磁盘: 点击文件->虚拟介质管理器(Control+D)打开虚拟介质管理器界面: 设置磁盘为可共享(Shareable): 在客户机C

SureHA 2.0集群中,共享磁盘及镜像磁盘中的数据能否保存共享设置和NTFS权限设置?

故障现象: SureHA 2.0集群中,共享磁盘及镜像磁盘中的数据,在其中一个节点上对文件夹设置共享和NTFS权限后,切换到另外一台服务器后,只有NTFS权限可以生效,共享设置无法保存.2节点均设置共享权限后,在主节点对共享内容进行修改后,切换至两外一个节点,共享设置也会丢失. 原因分析: SureHA 2.0集群中,共享磁盘及镜像磁盘中数据的共享设置无法保存,NTFS权限可以正常保存. 解决方案: SureHA 2.0集群中,共享磁盘及镜像磁盘中数据的共享设置无法保存,NTFS权限可以正常保存

Linux SureHA集群共享磁盘一直处于启动中的处理方法

在日志中查看可以看到磁盘有FSCK操作,如下图:   原因分析: Linux SureHA集群中,默认设置磁盘挂载一定次数后,会自动进行fsck操作.进行该操作时,共享磁盘资源将无法正常启动. 解决方案: 建议直接取消默认设置的FSCK参数.   登录webmanager,切换到设定模式,在磁盘资源上右键单击选择属性,在"详细"-->"调整"-->"FSCK"中将相关选项设置为不执行,如下图:   通过上面的设置一直显示启动中的问题也

在vSphere client中扩大共享磁盘大小后启动报错:VMware ESX 无法打开虚拟磁盘以进行集群

问题描述 在vSphereclient里面新建了两个虚拟机,两台机已经实现了共享存储,做好了集群,这个是大前提.因为业务需要,共享磁盘需要扩大,我在如下图所示位置将原本的虚拟磁盘从5g扩大到7g但是查看另一台机的这个虚拟磁盘(这两台机的磁盘3是共享磁盘,指向的同一个文件),显示的还是原本的5g浏览查看该文件,文件大小已经变为7g了,如下图启动虚拟机就报错了,错如下图本人是个菜鸟,集群好不容易弄好的现在服务器都启动不了,第一次遇到这个问题,是在不知道怎么回事,求大侠解答!!! 解决方案 本帖最后由

AIX的磁盘和文件系统概述

1.系统目录 2.逻辑卷管理 在了解 AIX 处理文件系统的方式之前,最好先对LVM(逻辑卷管理)有一个基本的了解.LVM 是一种与传统 UNIX 分区策略完全不同的磁盘管理方法.它的优点之一是允许动态地给一个文件系统分配更多的空间.LVM 的组成要素有:物理卷(PV).卷组(VG).物理分区(PP).逻辑卷(LV)和逻辑分区(LP)等. 3.基本概念: 物理卷:一个物理卷指一块硬盘. 卷组:卷组是可用物理硬盘的集合,可以逻辑地看成一块大硬盘.一个卷组由一个或多个物理卷组成,最多可达 32 个(