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.
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
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.
Parmi eux,
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
configurez le nom de l'appareil, remplacez
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"
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
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"
Vérifiez la configuration
# start_udev Starting udev: [ OK ]
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
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
其中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视频教程》
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!