linux如何使用裸設備
A. 怎樣在Linux 5上添加裸設備映射
解決方法:
裸設備介面在紅帽企業Linux 5上已經被去掉了。現在可以通過udev規則配置裸設備。
為了添加裸設備映射,在/etc/udev/rules.d/60-raw.rules 添加一行,格式和下面的一樣:
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
主/從號:
ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"
以需要邦定的設備名(例如/dev/sda1)替換上面的<device name>。"A"和"B"是需要邦定的主/從號。"X"是系統將要使用的裸設備的序號。
如果之前存在一個大的/etc/sysconfig/rawdevices文件,可以使用下面的腳本作轉換:
#!/bin/sh
grep -v "^ *#" /etc/sysconfig/rawdevices | grep -v "^$" | while read dev major
minor ; do
if [ -z "$minor" ]; then
echo "ACTION==\"add\", KERNEL==\"${major##/dev/}\",
RUN+=\"/usr/bin/raw $dev %N\""
else
echo "ACTION==\"add\", ENV{MAJOR}==\"$major\",
ENV{MINOR}==\"$minor\", RUN+=\"/usr/bin/raw $dev %M %m\""
fi
done
AS5 和AS4 的方法完全不同
AS5
設置重新啟動自動掛載裸設備
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw3 %N"
AS4
vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdc1
/dev/raw/raw2 /dev/sdd1
# /sbin/service rawdevices restart
-------------------------------------------------------------------------------------------------
綁定裸設備
raw /dev/raw/raw<N> /dev/<blockdev>
刪除裸設備
raw /dev/raw/raw<N> 0 0
如用raw /dev/raw/raw1 0 0 刪除裸設備/dev/raw/raw1
B. 請教個Linux的問題,我想把已經格式化成ext3文件系統的某塊盤 變成裸設備,該怎麼做
變成裸設備後分區上的內容將被清除
編輯/etc/udev/rules.d/60-raw.rules,加入如下內容:
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="16",RUN+="/bin/raw/dev/raw/raw1 %M %m"
ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N"
KERNEL=="raw[1]",OWNER="oracle", GROUP="oinstall", MODE="640
其中MAJOR、MINOR和KERNEL的值根據版實際情況權填寫。許可權部分我用oracle做了示例,可根據情況修改。
使用start_udev使設置生效,此時會在/dev/raw/下生成相應的raw1文件,該文件即裸設備
格式化裸設備(大小按照2T設計,耗時可能相當長!!):dd if=/dev/zero of=/dev/raw/raw1 bs=2M count=1048576
完成
C. Linux上如何創建裸設備
mknod命令用於創建一個設備文件,即特殊文件
操作系統與外部設備
(例如:磁碟驅動器,列印機,modern,終端 等等)都是
通過設備文件來進行通信
的,在Unix/Linux系統與外部設備通訊之前,這個設備必須首先要有一個設備文件,
設備文件均放在/dev目錄下。
一般情況下在安裝系統的時候系統自動創建了很多已檢測到的設備的設備文件,但有時候我們也需要自己手動創建,命令行生成設備文件的方式有 insf,mksf,mknod等等
根據mknod命令的使用參數來看【mknod Name { b | c } Major Minor 】,使用mknod之前,至少要明白以下幾點:
設備文件類型:分為塊設備和字元設備。ls -l /dev 結果顯示第一個欄位有b*** 和 c****,這里即標識了塊設備和字元設備。
字元設備文件----字元設備文件傳送數據給設備的時候,一次傳送一個字元,終端,列印機,繪圖儀,modern等設備都經過字元設備文件傳送數據。
塊設備---系統通過塊設備文件存取一個設備的時候,先從內存中的buffer中讀或寫數據,而不是直接傳送數據到物理磁碟,這種方式能有效的提高磁碟和CD-ROMS的I/O性能。磁碟和CD-ROMS既可以使用字元設備文件也可使用塊設備文件。
主號和次號:
主號:當在任意目錄使用ls -l 時,結果的第5個欄位就是主號,
設備主號代表了這個設備使用的是哪個設備驅動程序。
次號:次號是一個24位的十六進制數字,
定義了設個設備在系統中的物理的位置。
就拿我們常用的創建卷組來看;
先來看看mknod 命令,如果該設備文件你想放在一個特定的文件夾下當然就先創建文件夾
mknod 設備文件名[/dev/xyz] b/c 主號 次號
{ mkdir /dev/vg01
mknod /dev/vg01/group c 64 0X010000}創建之後,就可以使用你想要創建的設備了,如我現在的卷組的創建命令:
vgcreate /dev/vg01 /dev/dsk/c*t*d*
一直進行下去之後的步驟根據不同的設備而不盡相同
D. linux 裸設備如何寫入文件,如何管理,有知道的,說說!! 感謝了!!
操作系統對設備的使用必須通過文件系統這一層,但有些應用可以跳過文件系統而直接使用裸設備
E. linux6如何把lv綁定到裸設備上
lv不做文件系統(mkfs),那麼那個lv就是裸設備。
F. Linux上如何創建裸設備
1.創建
pv
pvcreate -M2 --metadatasize 100M /dev/sda
pvcreate -M2 --metadatasize 100M /dev/sdb1
pvcreate -M2 --metadatasize 100M /dev/sdb2
pvcreate -M2 --metadatasize 100M /dev/sdc
物理卷可以是整個硬碟(
lun
),也可以是硬碟上的一個分區
2.創建
vg
vgcreate vg_db /dev/sda /dev/sdb1 /dev/sdb2 /dev/sdc -s128m
3.創建
lv
lvcreate -L2048m -i4 -I64k vg_db -n lv_2g_001
lvcreate -L2048m -i4 -I64k vg_db -n lv_2g_002
4.綁定
raw /dev/raw/raw1 /dev/mapper/vg_db-lv_2g_001
raw /dev/raw/raw2 /dev/mapper/vg_db-lv_2g_002
使用
raw
命令綁定的裸設備在重啟後會失效。所以需要修改
/etc/sysconfig/rawdevices
配置文件,在文件中加入如下內容(每個裸設備一
行):
/dev/raw/raw1 /dev/mapper/vg_db-lv_2g_001
/dev/raw/raw2 /dev/mapper/vg_db-lv_2g_002
執行
/etc/init.d/rawdevices restart
使配置文件中的裸設備生效
執行
/sbin/chkconfig rawdevices on
保證機器啟動的時候裸設備能夠載入
5.授權
chown -R oracle.dba /dev/mapper
修改配置文件
/etc/udev/permissions.d/50-udev.permissions
注釋掉
raw/*:root:disk:0660
添加新行
raw/*:oracle:dba:0660
6.鏈
(可選)
ln -s /dev/raw/raw1 /oradata/ningoo/system01.dbf
ln -s /dev/raw/raw2 /oradata/ningoo/undo01.dbf
G. Linux下裸設備(raw device),字元設備,塊設備還有logical device四者之間的關系(比如誰包含誰等)
塊設備:按照數據塊批量讀寫數據,比如硬碟。
字元設備:按照數據串列輸入回輸出,比如鍵盤答
裸設備:就是一塊硬碟或者一個分區,沒有經過格式化的,沒有文件系統。
邏輯設備:就是講小磁碟整合成一個大磁碟,然後再進行分區,實際物理存儲可能不連續。
H. linux下如何查看裸設備與那個邏輯卷綁定
pvdisplay:查看物理卷信息
lvdisplay:查看邏輯卷信息
通過這兩條命令,相信你能找到你要的信息
