麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 服務(wù)器 > 管理維護(hù) > 正文

tmpfs介紹

2024-09-10 14:18:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Daniel Robbins([email protected]
總裁/首席執(zhí)行官,Gentoo Technologies,Inc.
2001 年 9 月

伴隨著 Linux 2.4 版本的發(fā)行,出現(xiàn)了大量的文件系統(tǒng)可能性,其中包括 ReiserFS、XFS、GFS 和其它文件系統(tǒng)。這些文件系統(tǒng)聽(tīng)起來(lái)的確都很酷,但是它們真正能做些什么呢,擅長(zhǎng)在哪些方面,以及在 Linux 產(chǎn)品環(huán)境下如何才能安全地使用它們呢?Daniel Robbins 通過(guò)向您展示如何在 Linux 2.4 的環(huán)境下建立這些新的高級(jí)文件系統(tǒng)來(lái)回答以上的問(wèn)題。在這個(gè)部分,Daniel 簡(jiǎn)單地介紹了 tmpfs,一個(gè)基于 VM 的文件系統(tǒng),還向您介紹了 2.4 版本的“綁定”安裝功能帶來(lái)的新的可能。

在本系列我以前的文章中,我介紹了創(chuàng)建日志和使用 ReiserFS 的好處,并展示了如何安裝一個(gè)穩(wěn)固的基于 Linux 2.4 的 ReiserFS 系統(tǒng)。在本文中,我們要談?wù)搸讉€(gè)相對(duì)次要的主題。首先,我們會(huì)簡(jiǎn)單地介紹一下 tmpfs,也就是我們知道的虛擬內(nèi)存(virtual memory,VM)文件系統(tǒng)。Tmpfs 可能是現(xiàn)在 Linux 可以使用的最好的類(lèi)似于 RAM 磁盤(pán)的系統(tǒng),而且是 2.4 內(nèi)核的一個(gè)新功能。然后,我們將簡(jiǎn)單地介紹另一個(gè) 2.4 內(nèi)核的新功能,叫做“綁定安裝”,它在安裝(和重新安裝)文件系統(tǒng)的時(shí)候帶來(lái)了很大的靈活性。在下一篇文章中,我們會(huì)把重點(diǎn)集中在 devfs 上,之后,我們會(huì)花點(diǎn)時(shí)間來(lái)進(jìn)一步熟悉新的 ext3 文件系統(tǒng)。

介紹 tmpfs
如果我必須一下子說(shuō)清楚 tmpfs,我會(huì)說(shuō) tmpfs 就象虛擬磁盤(pán)(ramdisk),但不一樣。象虛擬磁盤(pán)一樣,tmpfs 可以使用您的 RAM,但它也可以使用您的交換分區(qū)來(lái)存儲(chǔ)。而且傳統(tǒng)的虛擬磁盤(pán)是個(gè)塊設(shè)備,并需要一個(gè) mkfs 之類(lèi)的命令才能真正地使用它,tmpfs 是一個(gè)文件系統(tǒng),而不是塊設(shè)備;您只是安裝它,它就可以使用了。總而言之,這讓 tmpfs 成為我有機(jī)會(huì)遇到的最好的基于 RAM 的文件系統(tǒng)。

tmpfs 和 VM
讓我們來(lái)看看 tmpfs 更有趣的一些特性吧。正如我前面提到的一樣,tmpfs 既可以使用 RAM,也可以使用交換分區(qū)。剛開(kāi)始這看起來(lái)可能有點(diǎn)武斷,但請(qǐng)記住 tmpfs 也是我們知道的“虛擬內(nèi)存文件系統(tǒng)”。而且,您可能也知道,Linux 內(nèi)核的虛擬內(nèi)存資源同時(shí)來(lái)源于您的 RAM 和交換分區(qū)。內(nèi)核中的 VM 子系統(tǒng)將這些資源分配到系統(tǒng)中的其它部分,并負(fù)責(zé)在后臺(tái)管理這些資源,通常是透明地將 RAM 頁(yè)移動(dòng)到交換分區(qū)或從交換分區(qū)到 RAM 頁(yè)。

tmpfs 文件系統(tǒng)需要 VM 子系統(tǒng)的頁(yè)面來(lái)存儲(chǔ)文件。tmpfs 自己并不知道這些頁(yè)面是在交換分區(qū)還是在 RAM 中;做這種決定是 VM 子系統(tǒng)的工作。tmpfs 文件系統(tǒng)所知道的就是它正在使用某種形式的虛擬內(nèi)存。

不是塊設(shè)備
這里是 tmpfs 文件系統(tǒng)另一個(gè)有趣的特性。不同于大多數(shù)“標(biāo)準(zhǔn)的”文件系統(tǒng),如 ext3、ext2、XFS、JFS、ReiserFS 和其它一些系統(tǒng),tmpfs 并不是存在于一個(gè)底層塊設(shè)備上面。因?yàn)?tmpfs 是直接建立在 VM 之上的,您用一個(gè)簡(jiǎn)單的 mount 命令就可以創(chuàng)建 tmpfs 文件系統(tǒng)了。

# mount tmpfs /mnt/tmpfs -t tmpfs

執(zhí)行這個(gè)命令之后,一個(gè)新的 tmpfs 文件系統(tǒng)就安裝在 /mnt/tmpfs,隨時(shí)可以使用。注意,不需運(yùn)行 mkfs.tmpfs;事實(shí)上,那是不可能的,因?yàn)闆](méi)有這樣的命令存在。在 mount 命令執(zhí)行之后,文件系統(tǒng)立即就被安裝并且可以使用了,類(lèi)型是 tmpfs。這和 Linux 虛擬磁盤(pán)如何使用大相徑庭;標(biāo)準(zhǔn)的 Linux 虛擬磁盤(pán)是塊設(shè)備,所以在使用它們之前必須用您選擇的文件系統(tǒng)將其格式化。相反,tmpfs 是一個(gè)文件系統(tǒng)。所以,您可以簡(jiǎn)單地安裝它就可以使用了。

Tmpfs 的優(yōu)勢(shì)

動(dòng)態(tài)文件系統(tǒng)的大小
您可能想知道我們前面在 /mnt/tmpfs 安裝的 tmpfs 文件系統(tǒng)有多大。這個(gè)問(wèn)題的答案有點(diǎn)意外,特別是在和基于磁盤(pán)的文件系統(tǒng)比較的時(shí)候。/mnt/tmpfs 最初會(huì)只有很小的空間,但隨著文件的復(fù)制和創(chuàng)建,tmpfs 文件系統(tǒng)驅(qū)動(dòng)程序會(huì)分配更多的 VM,并按照需求動(dòng)態(tài)地增加文件系統(tǒng)的空間。而且,當(dāng) /mnt/tmpfs 中的文件被刪除時(shí),tmpfs 文件系統(tǒng)驅(qū)動(dòng)程序會(huì)動(dòng)態(tài)地減小文件系統(tǒng)并釋放 VM 資源,這樣做可以將 VM 返回到循環(huán)當(dāng)中以供系統(tǒng)中其它部分按需要使用。因?yàn)?VM 是寶貴的資源,所以您一定不希望任何東西浪費(fèi)超出它實(shí)際所需的 VM,tmpfs 的好處之一就在于這些都是自動(dòng)處理的。 請(qǐng)參閱參考資料。

速度
tmpfs 的另一個(gè)主要的好處是它閃電般的速度。因?yàn)榈湫偷?tmpfs 文件系統(tǒng)會(huì)完全駐留在 RAM 中,讀寫(xiě)幾乎可以是瞬間的。即使用了一些交換分區(qū),性能仍然是卓越的,當(dāng)更多空閑的 VM 資源可以使用時(shí),這部分 tmpfs 文件系統(tǒng)會(huì)被移動(dòng)到 RAM 中去。讓 VM 子系統(tǒng)自動(dòng)地移動(dòng)部分 tmpfs 文件系統(tǒng)到交換分區(qū)實(shí)際上對(duì)性能上是好的,因?yàn)檫@樣做可以讓 VM 子系統(tǒng)為需要 RAM 的進(jìn)程釋放空間。這一點(diǎn)連同它動(dòng)態(tài)調(diào)整大小的能力,比選擇使用傳統(tǒng)的 RAM 磁盤(pán)可以讓操作系統(tǒng)有好得多的整體性能和靈活性。

沒(méi)有持久性
這看起來(lái)可能不象是個(gè)積極因素,tmpfs 數(shù)據(jù)在重新啟動(dòng)之后不會(huì)保留,因?yàn)樘摂M內(nèi)存本質(zhì)上就是易失的。我想您可能猜到了 tmpfs 被稱(chēng)為“tmpfs”的一個(gè)原因,不是嗎?然而,這實(shí)際上可以是一件好事。它讓 tmpfs 成為一個(gè)保存您不需保留的數(shù)據(jù)(如臨時(shí)文件,可以在 /tmp 中找到,還有 /var 文件系統(tǒng)樹(shù)的某些部分)的卓越的文件系統(tǒng)。

使用 tmpfs
為了使用 tmpfs,您所需要的就是啟用了“Virtual memory file system support(以前是 shm fs)”選項(xiàng)的 2.4 系列內(nèi)核;這個(gè)選項(xiàng)在內(nèi)核配置選項(xiàng)的“File systems”部分。一旦您有了一個(gè)啟用了 tmpfs 的內(nèi)核,您就可以開(kāi)始安裝 tmpfs 文件系統(tǒng)了。其實(shí),在您所有的 2.4 內(nèi)核中都打開(kāi) tmpfs 選項(xiàng)是個(gè)好主意,不管您是否計(jì)劃使用 tmpfs。這是因?yàn)槟枰獌?nèi)核 tmpfs 支持來(lái)使用 POSIX 共享的內(nèi)存。然而,System V 共享的內(nèi)存不需要內(nèi)核中有 tmpfs 就可以工作。注意,您不需要為了讓 POSIX 共享的內(nèi)存工作而安裝 tmpfs 文件系統(tǒng);您只需要在內(nèi)核中支持 tmpfs 就可以了。POSIX 共享的內(nèi)存現(xiàn)在使用得不太多,但這種情況可能會(huì)隨著時(shí)間而改變。

避免低 VM 情況
tmpfs 根據(jù)需要?jiǎng)討B(tài)增大或減小的事實(shí)讓人疑惑:如果您的 tmpfs 文件系統(tǒng)增大到它耗盡了所有虛擬內(nèi)存的程度,而您沒(méi)有剩余的 RAM 或交換分區(qū),這時(shí)會(huì)發(fā)生什么?一般來(lái)說(shuō),這種情況是有點(diǎn)討厭。如果是 2.4.4 內(nèi)核,內(nèi)核會(huì)立即鎖定。如果是 2.4.6 內(nèi)核,VM 子系統(tǒng)已經(jīng)以很多種方式得到了修正,雖然耗盡 VM 并不是一個(gè)美好的經(jīng)歷,事情也不會(huì)完全地失敗。如果 2.4.6 內(nèi)核到了無(wú)法分配更多 VM 的程度,您顯然不愿意不能向 tmpfs 文件系統(tǒng)寫(xiě)任何新數(shù)據(jù)。另外,可能會(huì)發(fā)生其他一些事情。首先,系統(tǒng)的其他一些進(jìn)程會(huì)無(wú)法分配更多的內(nèi)存;通常,這意味著系統(tǒng)多半會(huì)變得極度緩慢而且?guī)缀鯖](méi)有響應(yīng)。這樣,超級(jí)用戶(hù)要采取必要的步驟來(lái)緩解這種低 VM 的情況就會(huì)很困難,或異常地耗時(shí)。

另外,內(nèi)核有一個(gè)內(nèi)建的最終防線(xiàn)系統(tǒng),用來(lái)在沒(méi)有可用內(nèi)存的時(shí)候釋放內(nèi)存,它會(huì)找到占用 VM 資源的進(jìn)程并終止該進(jìn)程。不幸的是,這種“終止進(jìn)程”的解決方案在 tmpfs 的使用增加引起 VM 耗盡的情況下通常會(huì)導(dǎo)致不良后果。以下是原因。tmpfs 本身不能(也不應(yīng)該)被終止,因?yàn)樗莾?nèi)核的一部分而非一個(gè)用戶(hù)進(jìn)程,而且也沒(méi)有容易的方法可以讓內(nèi)核找出是那個(gè)進(jìn)程占滿(mǎn)了 tmpfs 文件系統(tǒng)。所以,內(nèi)核會(huì)錯(cuò)誤地攻擊它能找到的最大的占用 VM 的進(jìn)程,通常會(huì)是 X 服務(wù)器(X server),如果您碰巧在使用它。所以,您的 X 服務(wù)器會(huì)被終止,而引起低 VM 情況的根本原因(tmpfs)卻沒(méi)有被解決。Ick.

低 VM:解決方案
幸運(yùn)的是,tmpfs 允許您在安裝或重新安裝文件系統(tǒng)的時(shí)候指定文件系統(tǒng)容量的最大值上限。實(shí)際上,從 2.4.6 內(nèi)核到 2.11g 內(nèi)核,這些參數(shù)只能在安裝時(shí)設(shè)置,而不是重新安裝時(shí),但我們可以期望在不久的將來(lái)可以在重新安裝時(shí)設(shè)置這些參數(shù)。tmpfs 容量最大值的最佳設(shè)置依賴(lài)于資源和您特定的 Linux 主機(jī)的使用模式;這個(gè)想法是要防止一個(gè)完全使用資源的 tmpfs 文件系統(tǒng)耗盡所有虛擬內(nèi)存結(jié)果導(dǎo)致我們前面談到的糟糕的低 VM 情況。尋找好的 tmpfs 上限值的一個(gè)好方法是使用 top 來(lái)監(jiān)控您系統(tǒng)的交換分區(qū)在高峰使用階段的使用情況。然后,確保指定的 tmpfs 上限稍小于所有這些高峰使用時(shí)間內(nèi)空閑交換分區(qū)和空閑 RAM 的總和。

創(chuàng)建有最大容量的 tmpfs 文件系統(tǒng)很容易。要?jiǎng)?chuàng)建一個(gè)新的最大 32 MB 的 tmpfs 文件系統(tǒng),請(qǐng)鍵入:
# mount tmpfs /dev/shm -t tmpfs -o size=32m

這次,我們沒(méi)有把 tmpfs 文件系統(tǒng)安裝在 /mnt/tmpfs,而是創(chuàng)建在 /dev/shm,這正好是 tmpfs 文件系統(tǒng)的“正式”安裝點(diǎn)。如果您正好在使用 devfs,您會(huì)發(fā)現(xiàn)這個(gè)目錄已經(jīng)為您創(chuàng)建好了。

還有,如果我們想將文件系統(tǒng)的容量限制在 512 KB 或 1 GB 以?xún)?nèi),我們可以分別指定 size=512k 和 size=1g。除了限制容量,我們還可以通過(guò)指定 nr_inodes=x 參數(shù)限制索引節(jié)點(diǎn)(文件系統(tǒng)對(duì)象)。在使用 nr_inodes 時(shí),x 可以是一個(gè)簡(jiǎn)單的整數(shù),后面還可以跟一個(gè) k、m 或 g 指定千、百萬(wàn)或十億(!)個(gè)索引節(jié)點(diǎn)。

而且,如果您想把上面的 mount tmpfs 命令的等價(jià)功能添加到 /etc/fstab,應(yīng)該是這樣:



tmpfs /dev/shm tmpfs size=32m 0 0


在現(xiàn)存的安裝點(diǎn)上安裝
在以前使用 2.2 的時(shí)候,試圖在已經(jīng)安裝了東西的安裝點(diǎn)再次安裝任何東西都會(huì)引發(fā)錯(cuò)誤。然而,重寫(xiě)后的內(nèi)核安裝代碼使多次使用安裝點(diǎn)不再成為問(wèn)題。這里是一個(gè)示例的情況:假設(shè)我們有一個(gè)現(xiàn)存的文件系統(tǒng)安裝在 /tmp。然而,我們決定要開(kāi)始使用 tmpfs 進(jìn)行 /tmp 的存儲(chǔ)。過(guò)去,您唯一的選擇就是卸載 /tmp 并在其位置重新安裝您新的 tmpfs/tmp 文件系統(tǒng),如下所示:



# umount /tmp

# mount tmpfs /tmp -t tmpfs -o size=64m

可是,這種解決方案也許對(duì)您不管用。可能有很多正在運(yùn)行的進(jìn)程在 /tmp 中有打開(kāi)的文件;如果是這樣,在試圖卸載 /tmp 時(shí),您就會(huì)遇到如下的錯(cuò)誤:

umount: /tmp: device is busy


然而,使用最近的 2.4 內(nèi)核,您可以安裝您新的 /tmp 文件系統(tǒng),而不會(huì)遇到“device is busy”錯(cuò)誤:



# mount tmpfs /tmp -t tmpfs -o size=64m


用一條命令,您新的 tmpfs /tmp 文件系統(tǒng)就被安裝在 /tmp,并安裝在已經(jīng)安裝的不能再被直接訪(fǎng)問(wèn)的分區(qū)之上。然而,雖然您不能訪(fǎng)問(wèn)原來(lái)的 /tmp,任何在原文件系統(tǒng)上還有打開(kāi)文件的進(jìn)程都可以繼續(xù)訪(fǎng)問(wèn)它們。而且,如果您 unmount 基于 tmpfs 的 /tmp,原來(lái)安裝的 /tmp 文件系統(tǒng)會(huì)重新出現(xiàn)。實(shí)際上,您在相同的安裝點(diǎn)上可以安裝任意數(shù)目的文件系統(tǒng),安裝點(diǎn)就象一個(gè)堆棧;卸載當(dāng)前的文件系統(tǒng),上一個(gè)最近安裝的文件系統(tǒng)就會(huì)重新出現(xiàn)。

綁定安裝
使用綁定安裝,我們可以將所有甚至部分已經(jīng)安裝的文件系統(tǒng)安裝到另一個(gè)位置,而在兩個(gè)安裝點(diǎn)可以同時(shí)訪(fǎng)問(wèn)該文件系統(tǒng)。例如,您可以使用綁定安裝來(lái)安裝您現(xiàn)存的根文件系統(tǒng)到 /home/drobbins/nifty,如下所示:



# mount --bind / /home/drobbins/nifty

現(xiàn)在,如果您觀察 /home/drobbins/nifty 的內(nèi)部,您就會(huì)看到您的根文件系統(tǒng)(/home/drobbins/nifty/etc、/home/drobbins/nifty/opt 等)。而且,如果您在根文件系統(tǒng)修改文件,您在 /home/drobbins/nifty 中也可以看到所作的改動(dòng)。這是因?yàn)樗鼈兪峭粋€(gè)文件系統(tǒng);內(nèi)核只是簡(jiǎn)單地為我們將該文件系統(tǒng)映射到兩個(gè)不同的安裝點(diǎn)。注意,當(dāng)您在另一處安裝文件系統(tǒng)時(shí),任何安裝在綁定安裝文件系統(tǒng)內(nèi)部的安裝點(diǎn)的文件系統(tǒng)都不會(huì)隨之移動(dòng)。換句話(huà)說(shuō),如果您在單獨(dú)的文件系統(tǒng)上有 /usr,我們前面執(zhí)行的綁定安裝就會(huì)讓 /home/drobbins/nifty/usr 為空。您會(huì)需要附加的綁定安裝命令來(lái)使您能夠?yàn)g覽位于 /home/drobbins/nifty/usr 的 /usr 的內(nèi)容:



# mount --bind /usr /home/drobbins/nifty/usr

綁定安裝部分文件系統(tǒng)
綁定安裝讓更妙的事情成為可能。假設(shè)您有一個(gè) tmpfs 文件系統(tǒng)安裝在它的傳統(tǒng)位置 /dev/shm,您決定要開(kāi)始在當(dāng)前位于根文件系統(tǒng)的 /tmp 使用 tmpfs。雖然可以在 /tmp(這是可能的)安裝一個(gè)新的 tmpfs 文件系統(tǒng),您也可以決定讓新的 /tmp 共享當(dāng)前安裝的 /dev/shm 文件系統(tǒng)。然而,雖然您可以在 /tmp 綁定安裝 /dev/shm 就完成了,但您的 /dev/shm 還包含一些您不想在 /tmp 出現(xiàn)的目錄。所以,您怎么做呢?這樣如何:



# mkdir /dev/shm/tmp



# chmod 1777 /dev/shm/tmp



# mount --bind /dev/shm/tmp /tmp


在這個(gè)示例中,我們首先創(chuàng)建了一個(gè) /dev/shm/tmp 目錄,然后給它 1777 權(quán)限,對(duì) /tmp 適當(dāng)?shù)脑S可。既然我們的目錄已經(jīng)準(zhǔn)備好了,我們可以安裝,也只能安裝 /dev/shm/tmp 到 /tmp。所以,雖然 /tmp/foo 會(huì)映射到 /dev/shm/tmp/foo,但您沒(méi)有辦法從 /tmp 訪(fǎng)問(wèn) /dev/shm/bar 文件。

正如您所見(jiàn),綁定安裝非常強(qiáng)大,讓您可以輕易地修改文件系統(tǒng)設(shè)計(jì),絲毫不必忙亂。下一篇文章,我們會(huì)談到 devfs,至于現(xiàn)在,您也許會(huì)想看看下面的參考資料。

參考資料

* 閱讀 Daniel 本系列以前的文章,他在那里介紹了創(chuàng)建日志和使用 ReiserFS 的好處,并展示了如何安裝一個(gè)穩(wěn)固的基于 Linux 2.4 的 ReiserFS 系統(tǒng)。
* Linux Weekly News 是與最新的內(nèi)核開(kāi)發(fā)保持同步的很好的參考資料。
* util-linux(最新鏈接)收集了各種重要的 Linux 應(yīng)用程序,包括 mount 和 unmount。您也許希望升級(jí)到最新的可用版本,這樣您就可以使用 mount --bind 語(yǔ)法(而不是使用 mount -o bind)。
* 因?yàn)?tmpfs 和綁定安裝相對(duì)來(lái)說(shuō)比較新,大部分都是沒(méi)有文檔說(shuō)明的內(nèi)核新特性,學(xué)習(xí)它們的最好方法就是學(xué)習(xí) Linux 內(nèi)核源代碼的相關(guān)部分。
* Namesys 頁(yè)面就是學(xué)習(xí)更多關(guān)于 ReiserFS 的地方。
* ReiserFS 郵件清單是更深入了解當(dāng)前ReiserFS 信息的很好的資源。一定還要看看 ReiserFS 郵件清單歸檔。
* 在 Juan I. Santos Florido 的 Linux Gazette Journal File Systems 回顧中,您可以找到 UFS、ext2 和 ReiserFS 之間元數(shù)據(jù)差異的很深入的講解和其它一些內(nèi)容。
* Jedi 的 ReiserFS/Qmail 調(diào)優(yōu)頁(yè)面包含很多對(duì) qmail 用戶(hù)很有用的信息。一定還要看看 ReiserSMTP,Jedi 在這里收集了很多提供強(qiáng)大 qmail 性能的 qmail 組件。
* 閱讀 developerWorks 上 Steve Best 的 JFS 概觀。
* 參加 developerWorks 上 Daniel 的免費(fèi)的 JFS 基礎(chǔ)教程。
* 瀏覽 developerWorks 上更多 Linux 參考資料。
* 瀏覽 developerWorks 上更多開(kāi)放源代碼資源。

關(guān)于作者
Daniel Robbins 是 Gentoo Technologies,Inc. 的總裁/首席執(zhí)行官,住在新墨西哥州的 Albuquerque,他是 Gentoo Linux(一種 PC 機(jī)上的高級(jí) Linux)和 Portage 系統(tǒng)(Linux 的下一代移植系統(tǒng))的創(chuàng)建者。他還是 Macmillan 的書(shū)籍 Caldera OpenLinux Unleashed、SuSE Linux Unleashed 和 Samba Unleashed 的特約作者。Daniel 從他二年級(jí)時(shí)接觸到 Logo 編程語(yǔ)言和 Pac Man 游戲的潛在危險(xiǎn)魔力后就被這股熱流卷進(jìn)了計(jì)算機(jī)中。這或許可以解釋他為什么曾經(jīng)是 SONY 電子出版/游戲公司的首席圖形設(shè)計(jì)師了。Daniel 喜歡花時(shí)間和他的妻子 Mary 還有他剛出生的寶貝女兒 Hadassah 在一起。您可以通過(guò) [email protected] 聯(lián)系他。

 

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美大荫蒂xxx | 亚洲第一页夜 | 国产精品成人av片免费看最爱 | 综合网天天射 | 黄色特级视频 | 色999国产| 大奶一级片 | 久久欧美亚洲另类专区91大神 | 国产精品视频1区 | 亚洲人成综合第一网 | 美女黄网站免费观看 | 成人精品久久 | 欧美日韩在线免费观看 | 精品人成 | 亚洲精品久久久久久久久久久 | 国产日韩在线观看一区 | 黄色片网站在线免费观看 | 精品小视频 | a集毛片| 亚洲天堂在线电影 | 国产成人在线一区 | 亚洲第一成人在线视频 | 亚洲无线看 | 日韩字幕在线 | 最新欧美精品一区二区三区 | av在线播放亚洲 | 久久丝袜脚交足黄网站免费 | 精品久久久久久中文字幕 | 青草伊人网 | 天天看天天摸天天操 | 高清在线观看av | 久久国产精品影视 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 视频一区二区三区视频 | 毛片福利| 久久精品亚洲精品国产欧美kt∨ | 电影av在线 | 久草在线新时代视觉 | 国产做爰| 日日艹夜夜艹 |