欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Linux下udev詳細介紹

每次在搭建OracleRAC環(huán)境中,遇到問題最多的就是關(guān)于ASM磁盤的的問題,通過查看網(wǎng)上許多搭建RAC的文檔,發(fā)現(xiàn)Oracle10g RAC大家普遍的修改/etc/udev/rules.d/60-raw.rules,而一些搭建Oracle11R2的RAC,大家都在配置的是/etc/udev/rules.d/99-oracle-asmdevices.rules這個文件,面對這樣一種情況,我不是很明白,這兩個文件到底有什么區(qū)別,這個問題困擾了我很久,直到今天遇到這樣一個問題:使用udev管理asmdisk執(zhí)行/sbin/scsi_id不顯示UUID。通過查詢相關(guān)的資料才算是對這個問題有了更深層次的理解。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鹽都網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鹽都網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鹽都地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

    

         Linux平臺通過udev的方式將塊設(shè)備轉(zhuǎn)換為字符設(shè)備,并固定設(shè)備的權(quán)限和所有者,這種需求只在安裝11gR1之前的RAC數(shù)據(jù)庫的時候需要這樣做,安裝11gR2的RAC,ASM可以直接使用塊設(shè)備。udev除了用于將塊設(shè)備轉(zhuǎn)換為字符設(shè)備外,還可用于固定設(shè)備文件名稱。

 

之后,通過實驗來驗證這個結(jié)論:

 

詳細的步驟請參考我的另一篇博文:

使用udev管理asmdisk執(zhí)行/sbin/scsi_id不顯示UUID

 

目錄

一、udev簡介... 1

二、udev的優(yōu)勢... 2

2.1動態(tài)管理... 2

2.2自定義命名規(guī)則... 2

2.3設(shè)定設(shè)備的權(quán)限和所有者/組... 2

2.4下面的流程圖顯示udev添加/刪除設(shè)備文件的過程。... 3

三、配置和使用udev(CentOS6.4)... 4

3.1檢查udev在CentOS6.5中的版本和運行情況... 4

3.2 udev的配置文件... 4

3.3通過udev設(shè)定設(shè)備文件的權(quán)限... 5

3.4 udev的規(guī)則和規(guī)則文件... 5

四、制定udev規(guī)則和查詢設(shè)備信息的實例... 8

4.1查找設(shè)備的信息(屬性)來制定udev規(guī)則... 8

4.2 udev的簡單規(guī)則... 10

4.3其他常用的udev命令... 11

 

一、udev簡介

udev是Linux2.6內(nèi)核里的一個功能,它替代了原來的devfs,成為當(dāng)前Linux 默認的設(shè)備管理工具。udev以守護進程的形式運行,通過偵聽內(nèi)核發(fā)出來的uevent來管理/dev目錄下的設(shè)備文件。不像之前的設(shè)備管理工具,udev在用戶空間(userspace)運行,而不在內(nèi)核空間(kernel space)運行。

 

二、udev的優(yōu)勢

2.1動態(tài)管理

當(dāng)設(shè)備添加/刪除時,udev的守護進程偵聽來自內(nèi)核的uevent,以此添加或者刪除/dev下的設(shè)備文件,所以udev只為已經(jīng)連接的設(shè)備產(chǎn)生設(shè)備文件,而不會在/dev下產(chǎn)生大量虛無的設(shè)備文件。

 

2.2自定義命名規(guī)則

通過Linux默認的規(guī)則文件,udev在/dev/里為所有的設(shè)備定義了內(nèi)核設(shè)備名稱,比如/dev/sda、/dev/hda、/dev/fd等等。由于udev是在用戶空間(user space)運行,Linux用戶可以通過自定義的規(guī)則文件,靈活地產(chǎn)生標(biāo)識性強的設(shè)備文件名,比如/dev/boot_disk、/dev/root_disk、/dev/color_printer等等。

 

2.3設(shè)定設(shè)備的權(quán)限和所有者/組

udev可以按一定的條件來設(shè)置設(shè)備文件的權(quán)限和設(shè)備文件所有者/組。在不同的udev版本中,實現(xiàn)的方法不同。

 

2.4下面的流程圖顯示udev添加/刪除設(shè)備文件的過程。

Linux下udev詳細介紹 

PS:

1.設(shè)備文件:由于本文以較通俗的方式講解udev,所以設(shè)備文件是泛指在/dev/下,可被應(yīng)用程序用來和設(shè)備驅(qū)動交互的文件。而不會特別地區(qū)分設(shè)備文件、設(shè)備節(jié)點或者設(shè)備特殊文件。

 

2.sysfs:sysfs是Linux2.6內(nèi)核里的一個虛擬文件系統(tǒng)(/sys)。它把設(shè)備和驅(qū)動的信息從內(nèi)核的設(shè)備模塊導(dǎo)出到用戶空間(userspace)。從該文件系統(tǒng)中,Linux用戶可以獲取很多設(shè)備的屬性。

 

3.devpath:本文的devpath是指一個設(shè)備在sysfs文件系統(tǒng)(/sys)下的相對路徑,該路徑包含了該設(shè)備的屬性文件。udev里的多數(shù)命令都是針對devpath操作的。例如:sda的devpath是/block/sda,sda2的devpath是/block/sda/sda2。

 

4.內(nèi)核設(shè)備名稱:設(shè)備在sysfs里的名稱,是udev默認使用的設(shè)備文件名。

三、配置和使用udev(CentOS6.4)

3.1檢查udev在CentOS6.5中的版本和運行情況

[root@testboot]# rpm -qa |grep -i udev

udev-147-2.46.el6.x86_64

libgudev1-147-2.46.el6.x86_64

python-gudev-147.1-4.el6_0.1.x86_64

libudev-147-2.46.el6.x86_64

system-config-printer-udev-1.1.16-23.el6.x86_64

 

[root@testboot]# ps -ef |grep -i udev

root     27957    1  0 10:23 ?        00:00:00 /sbin/udevd -d

root     28584 27957  0 10:34 ?        00:00:00 /sbin/udevd -d

root     29017 1955  0 13:28 pts/0    00:00:00 grep -i udev 

 

3.2 udev的配置文件

[root@test~]# cat/etc/udev/udev.conf

#The initial syslog(3) priority: "err", "info","debug" or its

#numerical equivalent. For runtime debugging, the daemons internal

#state can be changed with: "udevadm control--log-priority=<value>".

udev_log="err"

 

udev_log:syslog記錄日志的級別,默認值是err。如果改為info或者debug的話,會有冗長的udev日志被記錄下來。

實際上在CentOS里,除了配置文件里列出的參數(shù)udev_log外,Linux用戶還可以修改參數(shù)udev_root和udev_rules,只不過這2個參數(shù)是不建議修改的,所以沒顯示在udev.conf里。syslog默認會記錄udev的日志,Linux用戶只能修改日志的級別(err、info、degub等);設(shè)備的權(quán)限不能在udev.conf里設(shè)定,而是要在規(guī)則文件(*.rules)里設(shè)定。

 

3.3通過udev設(shè)定設(shè)備文件的權(quán)限

在CentOS6.4的udev,已經(jīng)沒有權(quán)限文件,所有的權(quán)限都是通過規(guī)則文件(*.rules)來設(shè)置,在下面的規(guī)則文件配置過程會介紹到。

 

3.4 udev的規(guī)則和規(guī)則文件

規(guī)則文件是udev里最重要的部分,默認是存放在/etc/udev/rules.d/下。所有的規(guī)則文件必須以“.rules”為后綴名。CentOS有默認的規(guī)則文件,這些默認規(guī)則文件不僅為設(shè)備產(chǎn)生內(nèi)核設(shè)備名稱,還會產(chǎn)生標(biāo)識性強的符號鏈接。例如:

 

[root@test~]# ls/dev/disk/by-uuid/

18f9b7a4-f6a9-4a87-a63b-2660b12c87db  8ac6170e-8e4d-4385-a166-92c2aaeb75ca

5e2405ac-1cb5-4a90-a6c9-67c2c245667b  c42b1176-beaf-4e52-98e3-1b6d386908c0

 

但這些鏈接名較長,不易調(diào)用,所以通常需要自定義規(guī)則文件,以此產(chǎn)生易用且標(biāo)識性強的設(shè)備文件或符號鏈接。

udev按照規(guī)則文件名的字母順序來查詢?nèi)恳?guī)則文件,然后為匹配規(guī)則的設(shè)備管理其設(shè)備文件或文件鏈接。雖然udev不會因為一個設(shè)備匹配了一條規(guī)則而停止解析后面的規(guī)則文件,但是解析的順序仍然很重要。通常情況下,建議讓自己想要的規(guī)則文件最先被解析。比如,創(chuàng)建一個名為/etc/udev/rules.d/10-myrule.rules的文件,并把你的規(guī)則寫入該文件,這樣udev就會在解析系統(tǒng)默認的規(guī)則文件之前解析到你的文件。

在規(guī)則文件里,除了以“#”開頭的行(注釋),所有的非空行都被視為一條規(guī)則,但是一條規(guī)則不能擴展到多行。規(guī)則都是由多個鍵值對(key-valuepairs)組成,并由逗號隔開,鍵值對可以分為條件匹配鍵值對(以下簡稱“匹配鍵”)和賦值鍵值對(以下簡稱“賦值鍵”),一條規(guī)則可以有多條匹配鍵和多條賦值鍵。匹配鍵是匹配一個設(shè)備屬性的所有條件,當(dāng)一個設(shè)備的屬性匹配了該規(guī)則里所有的匹配鍵,就認為這條規(guī)則生效,然后按照賦值鍵的內(nèi)容,執(zhí)行該規(guī)則的賦值。下面是一個簡單的規(guī)則:

KERNEL=="sda",NAME="my_root_disk",MODE="0660"

KERNEL是匹配鍵,NAME和MODE是賦值鍵。這條規(guī)則的意思是:如果有一個設(shè)備的內(nèi)核設(shè)備名稱為sda,則該條件生效,執(zhí)行后面的賦值:在/dev下產(chǎn)生一個名為my_root_disk的設(shè)備文件,并把設(shè)備文件的權(quán)限設(shè)為0660。

僅當(dāng)操作符是“==”或者“!=”時,其為匹配鍵;若為其他操作符時,都是賦值鍵。

 

udev規(guī)則的所有操作符:

“==”:比較鍵、值,若等于,則該條件滿足;

“!=”:比較鍵、值,若不等于,則該條件滿足;

“=”:對一個鍵賦值;

“+=”:為一個表示多個條目的鍵賦值。

“:=”:對一個鍵賦值,并拒絕之后所有對該鍵的改動。目的是防止后面的規(guī)則文件對該鍵賦值。

 

udev規(guī)則的匹配鍵:

ACTION:事件(uevent)的行為,例如:add(添加設(shè)備)、remove(刪除設(shè)備)。

KERNEL:內(nèi)核設(shè)備名稱,例如:sda,cdrom。

DEVPATH:設(shè)備的devpath路徑。

SUBSYSTEM:設(shè)備的子系統(tǒng)名稱,例如:sda的子系統(tǒng)為block。

BUS:設(shè)備在devpath里的總線名稱,例如:usb。

DRIVER:設(shè)備在devpath里的設(shè)備驅(qū)動名稱,例如:ide-cdrom。

ID:設(shè)備在devpath里的識別號。

SYSFS{filename}:設(shè)備的devpath路徑下,設(shè)備的屬性文件“filename”里的內(nèi)容。

例如:SYSFS{model}==“ST936701SS”表示:如果設(shè)備的型號為ST936701SS,則該設(shè)備匹配該匹配鍵。

在一條規(guī)則中,可以設(shè)定最多五條SYSFS的匹配鍵。

ENV{key}:環(huán)境變量。在一條規(guī)則中,可以設(shè)定最多五條環(huán)境變量的匹配鍵。

PROGRAM:調(diào)用外部命令。

RESULT:外部命令PROGRAM的返回結(jié)果。例如:

PROGRAM=="/lib/udev/scsi_id-g -s $devpath", RESULT=="35000c50000a7ef67"

調(diào)用外部命令/lib/udev/scsi_id查詢設(shè)備的SCSIID,如果返回結(jié)果為35000c50000a7ef67,則該設(shè)備匹配該匹配鍵。

 

udev的重要賦值鍵:

NAME:在/dev下產(chǎn)生的設(shè)備文件名。只有第一次對某個設(shè)備的NAME的賦值行為生效,之后匹配的規(guī)則再對該設(shè)備的NAME賦值行為將被忽略。如果沒有任何規(guī)則對設(shè)備的NAME賦值,udev將使用內(nèi)核設(shè)備名稱來產(chǎn)生設(shè)備文件。

SYMLINK:為/dev/下的設(shè)備文件產(chǎn)生符號鏈接。由于udev只能為某個設(shè)備產(chǎn)生一個設(shè)備文件,所以為了不覆蓋系統(tǒng)默認的udev規(guī)則所產(chǎn)生的文件,推薦使用符號鏈接。

OWNER, GROUP, MODE:為設(shè)備設(shè)定權(quán)限。

ENV{key}:導(dǎo)入一個環(huán)境變量。

 

udev的值和可調(diào)用的替換操作符:

在鍵值對中的鍵和操作符都介紹完了,最后是值(value)。Linux用戶可以隨意地定制udev規(guī)則文件的值。例如:my_root_disk,my_printer。同時也可以引用下面的替換操作符:

$kernel, %k:設(shè)備的內(nèi)核設(shè)備名稱,例如:sda、cdrom。

$number, %n:設(shè)備的內(nèi)核號碼,例如:sda3的內(nèi)核號碼是3。

$devpath, %p:設(shè)備的devpath路徑。

$id, %b:設(shè)備在devpath里的ID號。

$sysfs{file},%s{file}:設(shè)備的sysfs里file的內(nèi)容。其實就是設(shè)備的屬性值。例如:$sysfs{size}表示該設(shè)備(磁盤)的大小。

$env{key}, %E{key}:一個環(huán)境變量的值。

$major, %M:設(shè)備的major號。

$minor %m:設(shè)備的minor號。

$result, %c:PROGRAM返回的結(jié)果。

$parent, %P:父設(shè)備的設(shè)備文件名。

$root, %r:udev_root的值,默認是/dev/。

$tempnode, %N:臨時設(shè)備名。

%%:符號%本身。

$$:符號$本身。

KERNEL=="sd*",PROGRAM="/lib/udev/scsi_id -g -s %p", \RESULT=="35000c50000a7ef67", SYMLINK="%k_%c"

該規(guī)則的執(zhí)行:如果有一個內(nèi)核設(shè)備名稱以sd開頭,且SCSI ID為35000c50000a7ef67,則為設(shè)備文件產(chǎn)生一個符號鏈接“sda_35000c50000a7ef67”.

 

四、制定udev規(guī)則和查詢設(shè)備信息的實例

4.1查找設(shè)備的信息(屬性)來制定udev規(guī)則

當(dāng)我們?yōu)橹付ǖ脑O(shè)備設(shè)定規(guī)則時,首先需要知道該設(shè)備的屬性,比如設(shè)備的序列號、磁盤大小、廠商ID、設(shè)備路徑等等。通常我們可以通過以下的方法獲得:

查詢sysfs文件系統(tǒng):

前面介紹過,sysfs里包含了很多設(shè)備和驅(qū)動的信息。

例如:設(shè)備sda的SYSFS{size}可以通過cat/sys/block/sda/size得到;SYSFS{model}信息可以通過cat/sys/block/sda/device/model得到。

udevadm info命令:(Centos5.3為udevinfo命令)

udevadm info可以查詢udev數(shù)據(jù)庫里的設(shè)備信息。例如:用udevadm info查詢設(shè)備sda的model和size信息:

 

[root@test~]# udevadm info-a -p /sys/block/sda | egrep "model|size"

    ATTR{size}=="62914560"

    ATTRS{model}=="VBOX HARDDISK   "

 

[root@test~]# udevadm info-a -p /sys/block/sda

Udevadminfo starts with the device specified by the devpath and then

walksup the chain of parent devices. It prints for every device

found,all possible attributes in the udev rules key format.

Arule to match, can be composed by the attributes of the device

andthe attributes from one single parent device.

 

  looking at device'/devices/pci0000:00/0000:00:0d.0/host2/target2:0:0/2:0:0:0/block/sda':

    KERNEL=="sda"

    SUBSYSTEM=="block"

    DRIVER==""

    ATTR{range}=="16"

    ATTR{ext_range}=="256"

    ATTR{removable}=="0"

    ATTR{ro}=="0"

    ATTR{size}=="62914560"

    ATTR{alignment_offset}=="0"

    ATTR{discard_alignment}=="0"

    ATTR{capability}=="52"

    ATTR{stat}=="   30322    6547  1191594   333118    7382    94590   811468  137604        0   154932  470661"

    ATTR{inflight}=="       0       0"

 

  looking at parent device'/devices/pci0000:00/0000:00:0d.0/host2/target2:0:0/2:0:0:0':

    KERNELS=="2:0:0:0"

    SUBSYSTEMS=="scsi"

    DRIVERS=="sd"

    ATTRS{device_blocked}=="0"

    ATTRS{type}=="0"

    ATTRS{scsi_level}=="6"

    ATTRS{vendor}=="ATA     "

    ATTRS{model}=="VBOX HARDDISK   "

    ATTRS{rev}=="1.0 "

    ATTRS{state}=="running"

    ATTRS{timeout}=="30"

    ATTRS{iocounterbits}=="32"

    ATTRS{iorequest_cnt}=="0x95a8"

    ATTRS{iodone_cnt}=="0x957d"

    ATTRS{ioerr_cnt}=="0x5"

    ATTRS{modalias}=="scsi:t-0x00"

    ATTRS{evt_media_change}=="0"

    ATTRS{dh_state}=="detached"

    ATTRS{queue_depth}=="31"

   ATTRS{queue_ramp_up_period}=="120000"

    ATTRS{queue_type}=="simple"

 

  looking at parent device'/devices/pci0000:00/0000:00:0d.0/host2/target2:0:0':

    KERNELS=="target2:0:0"

    SUBSYSTEMS=="scsi"

    DRIVERS==""

 

  looking at parent device'/devices/pci0000:00/0000:00:0d.0/host2':

    KERNELS=="host2"

    SUBSYSTEMS=="scsi"

    DRIVERS==""

 

  looking at parent device'/devices/pci0000:00/0000:00:0d.0':

    KERNELS=="0000:00:0d.0"

    SUBSYSTEMS=="pci"

    DRIVERS=="ahci"

    ATTRS{vendor}=="0x8086"

    ATTRS{device}=="0x2829"

    ATTRS{subsystem_vendor}=="0x0000"

    ATTRS{subsystem_device}=="0x0000"

    ATTRS{class}=="0x010601"

    ATTRS{irq}=="21"

    ATTRS{local_cpus}=="1"

    ATTRS{local_cpulist}=="0"

   ATTRS{modalias}=="pci:v00008086d00002829sv00000000sd00000000bc01sc06i01"

    ATTRS{numa_node}=="-1"

    ATTRS{enable}=="1"

    ATTRS{broken_parity_status}=="0"

    ATTRS{msi_bus}==""

 

  looking at parent device '/devices/pci0000:00':

    KERNELS=="pci0000:00"

    SUBSYSTEMS==""

DRIVERS=="" 

 

4.2 udev的簡單規(guī)則

產(chǎn)生網(wǎng)卡設(shè)備文件的規(guī)則:

SUBSYSTEM=="net",SYSFS{address}=="AA:BB:CC:DD:EE:FF", NAME="public_NIC"

該規(guī)則表示:如果存在設(shè)備的子系統(tǒng)為net,并且地址(MACaddress)為“AA:BB:CC:DD:EE:FF”,為該設(shè)備產(chǎn)生一個名為public_NIC的設(shè)備文件。

為指定大小的磁盤產(chǎn)生符號鏈接的規(guī)則

SUBSYSTEM=="block",SYSFS{size}=="71096640", SYMLINK ="my_disk"

該規(guī)則表示:如果存在設(shè)備的子系統(tǒng)為block,并且大小為71096640(block),則為該設(shè)備的設(shè)備文件名產(chǎn)生一個名為my_disk的符號鏈接。

通過外部命令為指定序列號的磁盤產(chǎn)生設(shè)備文件的規(guī)則

KERNEL=="sd*[0-9]",PROGRAM=="/lib/udev/scsi_id -g -s %p", \ RESULT=="35000c50000a7ef67",NAME +="root_disk%n"

該規(guī)則表示:如果存在設(shè)備的內(nèi)核設(shè)備名稱是以sd開頭(磁盤設(shè)備),以數(shù)字結(jié)尾(磁盤分區(qū)),并且通過外部命令查詢該設(shè)備的SCSI_ID號為“35000c50000a7ef67”,則產(chǎn)生一個以root_disk開頭,內(nèi)核號碼結(jié)尾的設(shè)備文件,并替換原來的設(shè)備文件(如果存在的話)。例如:產(chǎn)生設(shè)備名/dev/root_disk2,替換原來的設(shè)備名/dev/sda2。

運用這條規(guī)則,可以在/etc/fstab里保持系統(tǒng)分區(qū)名稱的一致性,而不會受驅(qū)動加載順序或者磁盤標(biāo)簽被破壞的影響,導(dǎo)致操作系統(tǒng)啟動時找不到系統(tǒng)分區(qū)。

 

4.3其他常用的udev命令

udevadm test(udevadm的子命令):針對一個設(shè)備,在不需要uevent觸發(fā)的情況下模擬一次udev的運行,并輸出查詢規(guī)則文件的過程、所執(zhí)行的行為、規(guī)則文件的執(zhí)行結(jié)果。

Simulate a udevevent run for the given device, and print debugoutput

 

start_udev:start_dev命令重啟udev守護進程,并對所有的設(shè)備重新查詢規(guī)則目錄下所有的規(guī)則文件,然后執(zhí)行所匹配的規(guī)則里的行為。通常使用該命令讓新的規(guī)則文件立即生效:

[root@test~]# start_udev

Startingudev: [ OK ]

 

start_udev一般沒有標(biāo)準(zhǔn)輸出,所有的udev相關(guān)信息都按照配置文件(udev.conf)的參數(shù)設(shè)置,由syslog記錄。

作者:SEian.G(苦練七十二變,笑對八十一難)

ITPUB:http://blog.itpub.net/31015730/

51CTO:http://seiang.blog.51cto.com/

網(wǎng)頁標(biāo)題:Linux下udev詳細介紹
分享路徑:http://aaarwkj.com/article28/isgjjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、云服務(wù)器企業(yè)網(wǎng)站制作定制開發(fā)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
精品一区二区久久久久久| 日本亚洲美丽少妇天堂| 国产一区二区三区在线观看俏佳人 | 欧美日韩精品福利一区二区| 日韩国产乱码一区中文字幕| 国产亚洲一区二区三区在线| 欧美熟妇精品一区二区蜜桃| 精品亚洲美无人区乱码| 国产精品—色哟哟视频| av基地蜜桃蜜桃蜜桃| 日本一区二区精品视频| 亚洲情欲一级片日韩欧美| 精品人妻va人妻中文字幕麻豆| 丰满人妻在线一区二区三区| 国产精品无卡无在线播放| 999热这里只有精品视频| 91成年精品一区在线观看| 激情综合婷婷中文字幕| 欧美激情一区二区三区蜜桃| 国产在线精品专区第一页 | 亚洲日本国产精品第一页| 亚洲欧美制服另类国产| 成人免费大片在线观看视频| 午夜体内射精免费视频| 国产又猛又黄又爽无遮挡| 亚洲av激情码国产一区| 白白色最新福利在线视频观看| 欧美日韩一区二区三区在线| 91av国产一区二区| 日韩在线不卡视频一区| 精品人妻一区二区三区| 亚洲一区欧美日韩91| 国产丝袜美女一区二区| 国产精品日韩欧美久久久| 日韩精品国产自拍在线| 亚洲一区二区日本久久| 日韩精品视频性色首页| 国产精品日韩精品在线| 欧美一区二区日韩一区二区| 亚洲字幕中文在线乱码mv| 亚洲风情亚av在线播放|