iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux raw是原始数据格式吗
  • 864
分享到

linux raw是原始数据格式吗

linuxraw 2023-03-14 13:03:30 864人浏览 泡泡鱼
摘要

这篇文章主要讲解了“linux raw是原始数据格式吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux raw是原始数据格式吗”吧!

这篇文章主要讲解了“linux raw是原始数据格式吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux raw是原始数据格式吗”吧!

linux raw是原始数据格式,在linux中表示“裸设备”,也叫裸分区、原始分区;linux raw是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备;裸设备可以绑定一个分区,也可以绑定一个磁盘。

linux raw设备详解

裸设备概述

裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。

字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。

块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。

这个与linux的版本相关,在旧版本中,最多只可以有256个裸设备,Linux 4下做多可以绑定81Array2个裸设备。但是在linux下,最多只能有255个分区,所以,如果用裸设备绑定分区,最多只能绑定255个裸设备。如果是用lvm,则没有这个限制。

Linux下单个磁盘最多可以有15个分区。3个主分区 + 1个扩展分区 + 11个逻辑分区。

建议的分区方法是:先分3个主分区,第四个分区为扩展分区,然后在扩展分区中再分成11个逻辑分区。

注意,裸设备不要绑定在扩展分区上。

linux下如果需要使用裸设备,则需要手工进行绑定,unix下则不用。

因为Unix中每一个块设备都会有一个对应的字符设备用于非缓存(unbuffered)I/O,这就是他对应的裸设备了。而Linux中rawio的则实现了一套非绑定(unbound)的裸设备/dev/rawN或者/dev/raw/rawN和一个控制设备/dev/rawct用来把他们绑定到块设备上。所以当需要使用一个裸设备的时候,就需要把他和一个真实存在的块设备对应起来,这一个步骤实际上就是完成了Unix里的自动对应一个非缓存字符设备。

major和minor device number

在unix/linux系统中,一切都是文件。所有硬盘、软盘、键盘等设备都用文件来代表,对应着/dev下面的文件。对于应用程序来说,可以像对待普通文件一样打开,关闭、读写这些设备文件。但是这种文件名,比如/dev/sda、/dev/raw/raw1都是用户空间名称,OS Kernel根本不知道这个名称指的是什么。在内核空间是通过major、minor device number 来区分设备的。

major device number可以看作是设备驱动程序,被同一设备驱动程序管理的设备有相同的major device number.这个数字实际是Kernel中device driver table 的索引,这个表保存着不同设备驱动程序。而minor device number用来代表被访问的具体设备。也就是说Kernel根据major device number 找到设备驱动程序,然后再从minor device number 获得设备位置等属性。所有这些major device number 是已经预先分配好的。详细信息可以从Http://www.lanana.org/docs/device-list/devices-2.6+.txt查看。

比如裸设备是162,scsi块设备是8

/etc/udev/rules.d/60-raw.rules

Redhat平台对raw设备的配置在redhat 5之后有了变化。在redhat 5之前,直接配置/etc/sysconfig/rawdevices件,通过/etc/init.d/rawdevices来管理raw设备的启动和关闭。在Redhat 5之后,原来的raw设备接口已经取消了,redhat 5中通过udev规则进行配置。 要配置,需要编辑/etc/udev/rules.d/60-raw.rules这个文件。

cat /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.

其中

ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"

配置设备名称,用你需要绑定的设备名称替换 <device name>(如:/dev/sda1),X为裸设备号

主/次号码:

ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"

"A" 和 "B" 是设备的主/次号码,X是系统使用的raw设备号码。

个人对redhat管理raw的过程理解为:在redhat 5中,是通过udev来管理raw设备的,而udev是通过MAJOR和MINOR来识别raw设备。故需要将设备号和裸设备号进行绑定,而主设备号和次设备号可以自行指定或者由系统自动分配。根据red hat的官方文档中关于raw.rule的示例中说KERNEL==..或ENV{MAJOR}...只需要任意配置一个就可以,但有些网友经过试验,验证必须二者同时配置才可以。

配置/etc/udev/rules.d/60-raw.rules文件

查看磁盘分区情况

# fdisk  -l /dev/sdb
Disk /dev/sdb: 4880 MB, 4880072704 bytes
255 heads, 63 sectors/track, 593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux
/dev/sdb2              26          50      200812+  83  Linux

配置/etc/udev/rules.d/60-raw.rules文件

# grep -v ^# /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", ENV{MAJOR}=="3", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="7", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw2 %M %m"

启动raw设备

# start_udev
Starting udev:                                             [  OK  ]

查看配置情况

# raw -qa
/dev/raw/raw1:  bound to major 8, minor 17
/dev/raw/raw2:  bound to major 8, minor 18

这里笔者不清楚为什么主设备号和复设备号并不和我在/etc/udev/rules.d/60-raw.rules指定的一样,望了解的读者告知,系统内核信息如下

# uname  -a
Linux rac1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)

可以通过如下方式指定主设备号和复设备号

# raw /dev/raw/raw1 1 1
/dev/raw/raw1:  bound to major 1, minor 1
raw /dev/raw/raw[n] /dev/xxx

其中n的范围是0-8191。raw目录不存在的话会被自动创建。执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件用命令方式绑定裸设备在系统重启后会失效。

删除裸设备

# raw /dev/raw/raw2 0 0
/dev/raw/raw2:  bound to major 0, minor 0
# raw -qa
/dev/raw/raw1:  bound to major 1, minor 1

以上设置必须同时修改/etc/udev/rules.d/60-raw.rules才能保证重启后生效,否则重启后系统会重新读取/etc/udev/rules.d/60-raw.rules

如需设置raw设备的用户和权限信息,可在/etc/udev/rules.d/60-raw.rules文件里添加如下信息:

ACTION=="add", KERNEL=="raw1", OWNER="dave", GROUP="tianlesoftware", MODE="660"

如果有多个raw设备,可以写成:

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dave", GROUP="tianlesoftware", MODE="660"
#chown oracle:oinstall /dev/raw/raw[1-4]
#chmod 775 /dev/raw/raw[1-4]

注意:在内核2.6.9-89.5AXS2之前使用/etc/sysconfig/rawdevices和/etc/udev/permissions.d/50-udev.permissions进行raw设备的配置和权限管理。在内核 2.6.18-128.7AXS3以后则使用了本文介绍的/etc/udev/rules.d/60-raw.rules进行raw设备的管理

确定裸设备的大小

比较笨的办法是,找出看裸设备对应的是那个实际的块设备,然后用fdisk -l /dev/[h,s]dXN看那个块设备的大小就好了。比较简单的办法是用blockdev命令来计算,如:

#blockdev --getsize /dev/raw/raw1

11718750

11718750表示有多少OS BLiocK。

一般一个OS BLOCK大小是512字节,所以11718750*512/1024/1024= 5722(m) 就是裸设备的大小。

使用裸设备作为oracle的数据文件的注意事项

1、一个裸设备只能放置一个数据文件

2、数据文件的大小不能超过裸设备的大小

如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)

如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)

为了简单起见,对所有的文件设置称比裸设备小1M即可。

3、数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小

4、linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。

感谢各位的阅读,以上就是“linux raw是原始数据格式吗”的内容了,经过本文的学习后,相信大家对linux raw是原始数据格式吗这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: linux raw是原始数据格式吗

本文链接: https://www.lsjlt.com/news/199755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux raw是原始数据格式吗
    这篇文章主要讲解了“linux raw是原始数据格式吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux raw是原始数据格式吗”吧! ...
    99+
    2023-03-14
    linux raw
  • Oracle基本数据类型存储格式浅析——RAW类型
    原文链接: https://www.modb.pro/db/23307xy 摘要:描述Oracle的RAW类型存储格式...
    99+
    2024-04-02
  • python原始数据和复杂数据是什么
    这篇“python原始数据和复杂数据是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“p...
    99+
    2024-04-02
  • linux中如何使用tcpdump查看原始数据包
    这篇文章给大家分享的是有关linux中如何使用tcpdump查看原始数据包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。尽管Snort之类的工具在筛选通过我们的网络而来的所有内容方面做得非常出色,但有时必须要查看...
    99+
    2023-06-15
  • redis储存数据格式是什么
    Redis支持多种不同的数据格式来存储数据,每种格式都有其特定的用途和优势。1. 字符串(String):最简单的数据结构,可以存储...
    99+
    2023-08-24
    redis
  • hive数据存储格式是什么
    Hive数据存储格式通常是以文本文件的形式存储,常见的格式包括: 文本文件:数据以文本形式存储,通常使用逗号、制表符或其他分隔符将...
    99+
    2024-04-12
    hive
  • Couchbase的数据存储格式是什么
    Couchbase使用的数据存储格式是JSON(JavaScript Object Notation)。JSON是一种轻量级的数据交...
    99+
    2024-04-09
    Couchbase
  • 猿创征文 | MySql数据库的最原始使用方式---JDBC
    目录 前言 1. 什么是JDBC 2.JDBC的由来 3. MySql是如何实现JDBC的 4. 使用JDBC前的准备工作 5. JDBC编程六步 5.1 注册驱动  5.2 获取连接  5.3 获取数据库操作对象  5.4 执行sql语...
    99+
    2023-09-12
    数据库 java mysql JDBC jdbc
  • springboot 返回json格式数据时间格式配置方式是怎么样的
    springboot 返回json格式数据时间格式配置方式是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。返回json格式数据时间格式配置数据库里面查出...
    99+
    2023-06-25
  • Vue数据响应式原理是什么
    本文小编为大家详细介绍“Vue数据响应式原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue数据响应式原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。响应式是什么简而言之就是数据变页面变如何实...
    99+
    2023-06-30
  • Couchbase是如何支持JSON数据格式的
    Couchbase支持JSON数据格式的主要方式是通过其灵活的数据模型和内置的JSON文档存储功能。Couchbase是一个面向文档...
    99+
    2024-04-09
    Couchbase
  • 阿里云的MySQL数据库是什么格式?
    阿里云的MySQL数据库是基于MySQL数据库管理系统开发的一款云计算数据库产品。它提供了一种安全、高效、可扩展的方式来管理、存储和检索数据。本文将详细介绍阿里云的MySQL数据库的格式。 一、阿里云的MySQL数据库格式阿里云的MySQL...
    99+
    2023-12-14
    阿里 格式 数据库
  • 云服务器的数据盘是什么格式
    云服务器的数据盘是一个格式名,用于存储服务器上的数据。常见的数据盘格式有: CDDVD:这种格式的数据盘,每个盘都是32K byte的大容量存储,可以用于备份数据、分发文件等。 RDS:这种格式的数据盘,每个盘都是64Kbyte的大容量...
    99+
    2023-10-27
    格式 服务器 数据
  • 电脑格式化数据分区指的是什么
    这篇文章主要介绍“电脑格式化数据分区指的是什么”,在日常操作中,相信很多人在电脑格式化数据分区指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑格式化数据分区指的是...
    99+
    2023-03-11
    电脑
  • Vue 中数据响应式的原理是什么
    Vue 中数据响应式的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。改造数据我们先来尝试写一个函数,用于改造对象:为什么要先写这个函...
    99+
    2024-04-02
  • 阿里云服务器数据盘是什么格式
    阿里云服务器数据盘可以是各种类型的数据存储格式,包括文件、数据库、云存储等,以下是几种常见的数据存储格式的对比: 文件类型: 阿里云服务器数据盘可以存储数据,通常包括文本、图片、音频、视频等,而其他数据类型可能不适合存储于服务器上。 数...
    99+
    2023-10-26
    阿里 格式 服务器
  • hdfs分布式存储数据的原理是什么
    HDFS(Hadoop Distributed File System)是一种分布式文件系统,它由多个节点组成,每个节点都可以存储数...
    99+
    2024-04-09
    hdfs
  • 腾讯云服务器挂载数据盘可以不格式化吗
    首先,我们需要在腾讯云服务器上创建一个挂载文件夹。您可以通过在控制台或脚本中输入 /data/ 来创建一个新的挂载文件夹。然后,您可以使用 mount 命令将挂载文件夹挂载到该文件夹中。 在 /data/ 文件夹中创建挂载文件后,您可以使...
    99+
    2023-10-27
    腾讯 服务器 数据
  • 轻量应用服务器数据盘是什么格式
    轻量应用服务器数据盘是一种使用Java和XML格式的数据存储格式。它通常是指一种非压缩的数据存储格式,可以在不牺牲存储效率的前提下更好地传输数据。 轻量应用服务器数据盘是一种基于Java的服务器端数据存储格式,它通常用于存储各种类型的文本...
    99+
    2023-10-26
    格式 服务器 数据
  • 数据库中TO_CHAR格式转换的方法是什么
    本篇内容主要讲解“数据库中TO_CHAR格式转换的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库中TO_CHAR格式转换的方法是什么”吧!我的经...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作