Quel est le format de Linux Raw ?

藏色散人
Libérer: 2023-03-14 09:33:30
original
1945 Les gens l'ont consulté

linux raw est le format de données original, ce qui signifie « périphérique nu » sous Linux, également appelé partition nue et partition brute ; Linux raw est un caractère spécial qui n'a pas été formaté et ne peut pas être lu par Unix/Linux via le système de fichiers. Périphérique ; un périphérique brut peut être lié à une partition ou à un disque.

Quel est le format de Linux Raw ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Quel est le format de Linux Raw ?

Format de données original.

Explication détaillée des périphériques bruts Linux

Aperçu des périphériques nus

Périphérique nu : également appelé partition nue (partition brute), il s'agit d'un périphérique à caractères spéciaux qui n'a pas été formaté et ne peut pas être lu par Unix/Linux via le système de fichiers. Un périphérique brut peut être lié à une partition ou à un disque.

Périphérique de caractères : les périphériques de lecture et d'écriture de caractères n'ont pas besoin de passer par le tampon du système d'exploitation. Il ne peut pas être monté par le système de fichiers.

Périphériques bloqués : les périphériques bloqués en lecture et en écriture doivent passer par le tampon du système d'exploitation, qui peut être monté sur le système de fichiers.

Ceci est lié à la version Linux. Dans l'ancienne version, il ne peut y avoir qu'un maximum de 256 appareils nus. Sous Linux 4, vous pouvez lier 81Array2 appareils nus. Cependant, sous Linux, il ne peut y avoir qu'un maximum de 255 partitions. Par conséquent, si vous utilisez un périphérique brut pour lier une partition, vous ne pouvez lier qu'un maximum de 255 périphériques bruts. Si vous utilisez LVM, cette restriction n'existe pas.

Un seul disque peut avoir jusqu'à 15 partitions sous Linux. 3 partitions principales + 1 partition étendue + 11 partitions logiques.

La méthode de partitionnement recommandée est la suivante : divisez-la d'abord en 3 partitions principales, la quatrième partition est une partition étendue, puis divisez-la en 11 partitions logiques dans la partition étendue.

Notez que les périphériques bruts ne doivent pas être liés à des partitions étendues.

Si vous devez utiliser des appareils nus sous Linux, vous devez les lier manuellement, mais pas sous Unix.

Étant donné que chaque périphérique bloc sous Unix a un périphérique de caractères correspondant pour les E/S sans tampon, il s'agit de son périphérique brut correspondant. Rawio sous Linux implémente un ensemble de périphériques bruts non liés /dev/rawN ou /dev/raw/rawN et un périphérique de contrôle /dev/rawct pour les lier aux périphériques bloqués. Ainsi, lorsque vous devez utiliser un périphérique brut, vous devez le faire correspondre à un véritable périphérique de bloc. Cette étape termine en fait le mappage automatique d'un périphérique de caractères non mis en cache sous Unix.

numéro de périphérique majeur et mineur

Dans les systèmes Unix/Linux, tout est un fichier. Tous les disques durs, disquettes, claviers et autres périphériques sont représentés par des fichiers correspondant aux fichiers sous /dev. Pour les applications, ces fichiers de périphérique peuvent être ouverts, fermés, lus et écrits comme des fichiers ordinaires. Cependant, ces noms de fichiers, tels que /dev/sda et /dev/raw/raw1, sont tous des noms d'espace utilisateur et le noyau du système d'exploitation ne sait pas à quoi ce nom fait référence. Dans l'espace noyau, les périphériques sont distingués par des numéros de périphérique majeurs et mineurs.

Le numéro de périphérique majeur peut être considéré comme un pilote de périphérique. Les périphériques gérés par le même pilote de périphérique ont le même numéro de périphérique majeur. Ce numéro est en fait l'index de la table des pilotes de périphérique dans le noyau, qui stocke différents pilotes de périphérique. Le numéro de périphérique mineur est utilisé pour représenter le périphérique spécifique auquel vous accédez. Autrement dit, le noyau trouve le pilote de périphérique en fonction du numéro de périphérique principal, puis obtient l'emplacement du périphérique et d'autres attributs à partir du numéro de périphérique mineur. Tous ces numéros d'appareil majeurs sont pré-attribués. Les détails peuvent être consultés sur http://www.lanana.org/docs/device-list/devices-2.6+.txt.

Par exemple, le périphérique brut est 162 et le périphérique bloc scsi est 8

/etc/udev/rules.d/60-raw.rules
Copier après la connexion

La configuration du périphérique brut sur la plate-forme Redhat a changé après Redhat 5. Avant Redhat 5, le fichier /etc/sysconfig/rawdevices était directement configuré et le démarrage et l'arrêt des périphériques bruts étaient gérés via /etc/init.d/rawdevices. Après Redhat 5, l'interface brute du périphérique d'origine a été annulée et Redhat 5 est configuré via les règles udev. Pour configurer, vous devez éditer le fichier /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.
Copier après la connexion

Parmi eux,

ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
Copier après la connexion

configurez le nom de l'appareil, remplacez par le nom de l'appareil que vous devez lier (tel que : /dev/sda1), A" et "B" sont les nombres majeurs/mineurs. de l'appareil, et X est le numéro brut de l'appareil utilisé par le système.

Ma compréhension personnelle du processus de gestion de Raw dans Redhat est la suivante : dans Redhat 5, les périphériques bruts sont gérés via udev, et udev identifie les périphériques bruts via MAJOR et MINOR. Par conséquent, le numéro de périphérique et le numéro de périphérique brut doivent être liés, et le numéro de périphérique majeur et le numéro de périphérique mineur peuvent être spécifiés par vous-même ou attribués automatiquement par le système. D'après l'exemple de raw.rule dans la documentation officielle de Red Hat, il est dit que KERNEL==.. ou ENV{MAJOR}... doit seulement être configuré arbitrairement. Cependant, certains internautes ont testé et vérifié que les deux doivent l'être. configuré en même temps.

Configurez le fichier /etc/udev/rules.d/60-raw.rules

Vérifiez la situation de la partition de disque

ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"
Copier après la connexion

Configurez le fichier /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
Copier après la connexion

Démarrez le périphérique brut

# 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"
Copier après la connexion

Vérifiez la configuration

# start_udev
Starting udev:                                             [  OK  ]
Copier après la connexion

L'auteur ici ne sait pas pourquoi le numéro de périphérique principal et le numéro de périphérique complexe ne sont pas les mêmes que ce que j'ai spécifié dans /etc/udev/rules.d/60-raw. règles. J'espère que les lecteurs qui en savent plus pourront me dire que le système Les informations sur le noyau sont les suivantes

# raw -qa
/dev/raw/raw1:  bound to major 8, minor 17
/dev/raw/raw2:  bound to major 8, minor 18
Copier après la connexion

Vous pouvez spécifier le numéro de périphérique principal et le numéro de périphérique complexe des manières suivantes

# raw /dev/raw/raw1 1 1
/dev/raw/raw1:  bound to major 1, minor 1
raw /dev/raw/raw[n] /dev/xxx
Copier après la connexion

其中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
Copier après la connexion

以上设置必须同时修改/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"
Copier après la connexion

如果有多个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]
Copier après la connexion

注意:在内核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视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!