精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊磁盤文件系統(二)

存儲 存儲設備
如果一個文件比較大,inode的塊號不足以標識所有的數據塊,就會使用間接塊。文件系統會在硬盤上分配一個數據塊,不存儲文件數據,專門用來存儲塊號。

[[406814]]

數據的存放

  • 在 ext2 和 ext3 中,其中前 12 項直接保存了塊的位置,也就是說,我們可以通過 i_block[0-11],直接得到保存文件內容的塊。

但是,如果一個文件比較大,inode的塊號不足以標識所有的數據塊,就會使用間接塊。文件系統會在硬盤上分配一個數據塊,不存儲文件數據,專門用來存儲塊號。該塊被稱為間接塊。inode的長度是固定的。間接塊占用的空間對于大文件來說是必要的。但是對于小文件不會帶來額外的開銷。當我們用到 i_block[12]的時候,就不能直接放數據塊的位置了,要不然 i_block 很快就會用完了。這該怎么辦呢?我們需要想個辦法。我們可以讓 i_block[12]指向間接塊。也就是說,我們在 i_block[12]里面放間接塊的位置,通過 i_block[12]找到間接塊后,間接塊里面放數據塊的位置,通過間接塊可以找到數據塊。如果文件再大一些,i_block[13]會指向一個塊,我們可以用二次間接塊。二次間接塊里面存放了間接塊的位置,間接塊里面存放了數據塊的位置,數據塊里面存放的是真正的數據。如果文件再大一些,i_block[14]會指向三次間接塊。

  • ext4文件系統的Extents一棵樹:

解釋一下 Extents。比方說,一個文件大小為 128M,如果使用 4k 大小的塊進行存儲,需要 32k 個塊。Extents 可以用于存放連續的塊,也就是說,我們可以把 128M 放在一個 Extents 里面。這樣的話,對大文件的讀寫性能提高了,文件碎片也減少了。如下圖所示:

索引節點區,用來存儲索引節點。Inode存儲了文件系統對象的一些元信息,如所有者、訪問權限(讀、寫、執行)、類型(是文件還是目錄)、內容修改時間、inode修改時間、上次訪問時間、對應的文件系統存儲塊的地址,等等。知道了1個文件的inode號碼,就可以在inode元數據中查出文件內容數據的存儲地址。對于EXT4的默認情況,一個inode的大小是256字節,inode是EXT4最重要的元數據信息。注意Inode沒有文件名稱,將在下文中講述。

  1. struct ext4_inode { 
  2.  __le16 i_mode;  /* File mode */ 
  3.  __le16 i_uid;  /* Low 16 bits of Owner Uid */ 
  4.  __le32 i_size_lo; /* Size in bytes */ 
  5.  __le32 i_atime; /* Access time */ 
  6.  __le32 i_ctime; /* Inode Change time */ 
  7.  __le32 i_mtime; /* Modification time */ 
  8.  __le32 i_dtime; /* Deletion Time */ 
  9.  __le16 i_gid;  /* Low 16 bits of Group Id */ 
  10.  __le16 i_links_count; /* Links count */ 
  11.  __le32 i_blocks_lo; /* Blocks count */ 
  12.  __le32 i_flags; /* File flags */ 
  13.  union { 
  14.   struct { 
  15.    __le32  l_i_version; 
  16.   } linux1; 
  17.   struct { 
  18.    __u32  h_i_translator; 
  19.   } hurd1; 
  20.   struct { 
  21.    __u32  m_i_reserved1; 
  22.   } masix1; 
  23.  } osd1;    /* OS dependent 1 */ 
  24.  __le32 i_block[EXT4_N_BLOCKS];/* Pointers to blocks */ 
  25.  __le32 i_generation; /* File version (for NFS) */ 
  26.  __le32 i_file_acl_lo; /* File ACL */ 
  27.  __le32 i_size_high; 
  28.  __le32 i_obso_faddr; /* Obsoleted fragment address */ 
  29.  union { 
  30.   struct { 
  31.    __le16 l_i_blocks_high; /* were l_i_reserved1 */ 
  32.    __le16 l_i_file_acl_high; 
  33.    __le16 l_i_uid_high; /* these 2 fields */ 
  34.    __le16 l_i_gid_high; /* were reserved2[0] */ 
  35.    __le16 l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */ 
  36.    __le16 l_i_reserved; 
  37.   } linux2; 
  38.   struct { 
  39.    __le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ 
  40.    __u16 h_i_mode_high; 
  41.    __u16 h_i_uid_high; 
  42.    __u16 h_i_gid_high; 
  43.    __u32 h_i_author; 
  44.   } hurd2; 
  45.   struct { 
  46.    __le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ 
  47.    __le16 m_i_file_acl_high; 
  48.    __u32 m_i_reserved2[2]; 
  49.   } masix2; 
  50.  } osd2;    /* OS dependent 2 */ 
  51.  __le16 i_extra_isize; 
  52.  __le16 i_checksum_hi; /* crc32c(uuid+inum+inode) BE */ 
  53.  __le32  i_ctime_extra;  /* extra Change time      (nsec << 2 | epoch) */ 
  54.  __le32  i_mtime_extra;  /* extra Modification time(nsec << 2 | epoch) */ 
  55.  __le32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */ 
  56.  __le32  i_crtime;       /* File Creation time */ 
  57.  __le32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */ 
  58.  __le32  i_version_hi; /* high 32 bits for 64-bit version */ 
  59.  __le32 i_projid; /* Project ID */ 
  60. }; 

普通文件的存儲格式

數據塊區,則用來存儲文件數據。i_block,我們來看看EXT4_N_BLOCKS的具體定義:

  1. #define  EXT4_NDIR_BLOCKS    12 
  2. #define  EXT4_IND_BLOCK      EXT4_NDIR_BLOCKS 
  3. #define  EXT4_DIND_BLOCK      (EXT4_IND_BLOCK + 1) 
  4. #define  EXT4_TIND_BLOCK      (EXT4_DIND_BLOCK + 1) 
  5. #define  EXT4_N_BLOCKS      (EXT4_TIND_BLOCK + 1) 

inode 里面的 i_block 中,可以放得下一個 ext4_extent_header 和 4 項 ext4_extent。

  1. struct ext4_extent_header {  
  2.     __le16 eh_magic; /* probably will support different formats */  
  3.      
  4.     __le16 eh_entries; /* number of valid entries */  
  5.                             
  6.     __le16 eh_max; /* capacity of store in entries */  
  7.                            
  8.     __le16 eh_depth; /* has tree real underlying blocks? */  
  9.                             
  10.     __le32 eh_generation; /* generation of the tree */ 
  11. }; 
  1. /* 
  2.  * This is the extent on-disk structure. 
  3.  * It's used at the bottom of the tree. 
  4.  */ 
  5. struct ext4_extent { 
  6.   __le32  ee_block;  /* first logical block extent covers */ 
  7.   __le16  ee_len;    /* number of blocks covered by extent */ 
  8.   __le16  ee_start_hi;  /* high 16 bits of physical block */ 
  9.   __le32  ee_start_lo;  /* low 32 bits of physical block */ 
  10. }; 
  11. /* 
  12.  * This is index on-disk structure. 
  13.  * It's used at all the levels except the bottom. 
  14.  */ 
  15. struct ext4_extent_idx { 
  16.   __le32  ei_block;  /* index covers logical blocks from 'block' */ 
  17.   __le32  ei_leaf_lo;  /* pointer to the physical block of the next * 
  18.          * level. leaf or next index could be there */ 
  19.   __le16  ei_leaf_hi;  /* high 16 bits of physical block */ 
  20.   __u16  ei_unused; 
  21. }; 

如果文件不大,inode 里面的 i_block 中,可以放得下一個 ext4_extent_header 和 4 項 ext4_extent。所以這個時候,eh_depth 為 0,也即 inode 里面的就是葉子節點,樹高度為 0。如果文件比較大,4 個 extent 放不下,就要分裂成為一棵樹,eh_depth>0 的節點就是索引節點,其中根節點深度最大,在 inode 中。最底層 eh_depth=0 的是葉子節點。

目錄與文件名的存儲格式

目錄下文件比較少的情況下:目錄本身也是個文件,也有 inode。inode 里面也是指向一些塊。和普通文件不同的是,普通文件的塊里面保存的是文件數據,而目錄文件的塊里面保存的是目錄里面一項一項的文件信息。這些信息我們稱為 ext4_dir_entry。從代碼來看,有兩個版本,在成員來講幾乎沒有差別,只不過第二個版本 ext4_dir_entry_2 是將一個 16 位的 name_len,變成了一個 8 位的 name_len 和 8 位的 file_type。即該目錄項的數據所在inode編號、文件名長度與類型、文件名字三部分組成。

  1. struct ext4_dir_entry { 
  2.   __le32  inode;      /* Inode number */ 
  3.   __le16  rec_len;    /* Directory entry length */ 
  4.   __le16  name_len;    /* Name length */ 
  5.   char  name[EXT4_NAME_LEN];  /* File name */ 
  6. }; 
  7. struct ext4_dir_entry_2 { 
  8.   __le32  inode;      /* Inode number */ 
  9.   __le16  rec_len;    /* Directory entry length */ 
  10.   __u8  name_len;    /* Name length */ 
  11.   __u8  file_type;   /* File type */ 
  12.   char  name[EXT4_NAME_LEN];  /* File name */ 
  13. }; 

file_type指定了目錄項的類型。改變量的可能值,由以下枚舉類型定義:

  1. enum{ 
  2.     EXT4_FT_UNKNOWN, 
  3.     EXT4_FT_REG_FILE, 
  4.     EXT4_FT_DIR, 
  5.     EXT4_FT_CHRDEV, 
  6.     EXT4_FT_BLKDEV, 
  7.     EXT4_FT_FIFO, 
  8.     EXT4_FT_SOCK, 
  9.     EXT4_FT_SYMLINK, 
  10.     EXT4_FT_MAX 

ls列出的目錄內容如下:

  1. [root@localhost ~]# ls -la 
  2. 總用量 37536 
  3. dr-xr-x---.  7 root root     4096 5月  26 16:54 . 
  4. dr-xr-xr-x. 19 root root      288 6月  10 14:51 .. 
  5. -rw-------.  1 root root     1260 1月  11 2014 anaconda-ks.cfg 

每一項都會保存這個目錄的下一級的文件的文件名和對應的 inode,通過這個 inode,就能找到真正的文件。第一項是“.”,表示當前目錄,第二項是“..”,表示上一級目錄,接下來就是一項一項的文件名和 inode。**目錄下文件比較多的情況下:如果一個目錄下有幾萬幾十萬個條目,這個方法就比較慢了。原因在于線性掃描,而且,1個block(4096字節),基本只能放下幾十~200個條目,一旦需要幾十幾百個block,那么為了獲取子文件的inode,這個DISK IO的消耗是不能忍受的。因此開發了dir_index的功能。dir_index使用dx_entry來對目錄文件的block進行管理,一個dx_entry對象對應一個block。dx_entry.hash記錄的是其對應block內所有目錄項的最小hash值,dx_entry.block記錄的是目錄文件的邏輯塊號。從/etc/mke2fs.conf中也可以看出,這個是格式化文件系統的默認選項:

  1. [defaults] 
  2.     base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr 
  3.     default_mntopts = acl,user_xattr 
  4.     enable_periodic_fsck = 0 
  5.     blocksize = 4096 
  6.     inode_size = 256 
  7.     inode_ratio = 16384 
  8.  
  9. [fs_types] 
  10.     ext3 = { 
  11.         features = has_journal 
  12.     } 
  13.     ext4 = { 
  14.         features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize 
  15.         auto_64-bit_support = 1 
  16.         inode_size = 256 
  17.     } 

如果在 inode 中設置 dir_index 標志,則目錄文件的塊的組織形式將發生變化,變成了下面定義的這個樣子:

  1. struct dx_root 
  2.   struct fake_dirent dot; 
  3.   char dot_name[4]; 
  4.   struct fake_dirent dotdot; 
  5.   char dotdot_name[4]; 
  6.   struct dx_root_info 
  7.   { 
  8.     __le32 reserved_zero; 
  9.     u8 hash_version; 
  10.     u8 info_length; /* 8 */ 
  11.     u8 indirect_levels; 
  12.     u8 unused_flags; 
  13.   } 
  14.   info; 
  15.   struct dx_entry  entries[0]; 
  16. }; 

當然,首先出現的還是差不多的,第一項是“.”,表示當前目錄;第二項是“..”,表示上一級目錄,這兩個不變。接下來就開始發生改變了。是一個 dx_root_info 的結構,其中最重要的成員變量是 indirect_levels,表示間接索引的層數。接下來我們來看索引項 dx_entry。這個也很簡單,其實就是文件名的哈希值和數據塊的一個映射關系。

  1. struct dx_entry 
  2.   __le32 hash; 
  3.   __le32 block; 
  4. }; 

那么,找到一個子文件需要如下步驟。1)根據待查找子文件名計算出hash值 2)在當前的全部dx_entry中采用二分查找的方式找到對應的dx_entry 3)根據dx_entry.block記錄值讀取目錄文件對應的邏輯塊內容 4)在讀取到的block內容中遍歷查找匹配的子文件目錄項 不難發現,之前的需要讀取N + 1個block的困境被簡化為只需要讀取一個block的內容即可,問題迎刃而解

為了表示圖中上半部分的那個簡單的樹形結構,在文件系統上的布局就像圖的下半部分一樣。無論是文件夾還是文件,都有一個 inode。inode 里面會指向數據塊,對于文件夾的數據塊,里面是一個表,是下一層的文件名和 inode 的對應關系,文件的數據塊里面存放的才是真正的數據。

ext類文件系統的缺點

最大的缺點是它在創建文件系統的時候就劃分好一切需要劃分的東西,以后用到的時候可以直接進行分配,也就是說它不支持動態劃分和動態分配。對于較小的分區來說速度還好,但是對于一個超大的磁盤,速度是極慢極慢的。例如將一個幾十T的磁盤陣列格式化為ext4文件系統,可能你會因此而失去一切耐心。除了格式化速度超慢以外,ext4文件系統還是非常可取的。當然,不同公司開發的文件系統都各有特色,最主要的還是根據需求選擇合適的文件系統類型。

本文轉載自微信公眾號「運維開發故事」,可以通過以下二維碼關注。轉載本文請聯系運維開發故事公眾號。

 

責任編輯:姜華 來源: 運維開發故事
相關推薦

2021-06-28 06:24:12

磁盤存儲VFS

2021-06-21 14:52:45

磁盤機械磁盤固態磁盤

2018-01-10 12:42:09

Linux磁盤文件系統

2009-10-12 11:14:51

LinuxLinux磁盤文件系統管理

2010-03-02 15:09:26

Linux mount

2016-12-27 10:48:59

Linux命令磁盤與文件系統

2010-04-07 18:42:42

Unix命令

2021-06-29 07:47:22

文件系統磁盤

2009-10-13 14:31:26

:Linux系統磁盤系統管理

2020-07-22 14:53:06

Linux系統虛擬文件

2017-08-17 10:03:06

磁盤系統實例

2010-03-05 17:43:00

Linux XFS文件

2024-03-11 10:30:31

Linux文件系統

2011-01-13 14:10:30

Linux文件系統

2023-09-03 17:09:58

LinuxSAN LUN磁盤

2023-09-05 15:17:48

LinuxLUN磁盤

2020-07-28 08:00:03

存儲數據技術

2019-09-20 10:04:45

Linux系統虛擬文件

2018-08-24 10:10:25

Linux文件系統技術

2021-04-12 05:44:44

Linux文件系統
點贊
收藏

51CTO技術棧公眾號

精品亚洲精品| 污污的网站在线免费观看| 日本欧美在线观看| 久久精品国产69国产精品亚洲| 一级黄色在线播放| 黑人精品视频| 欧美国产日韩亚洲一区| 91在线视频精品| 成人午夜视频精品一区| 色喇叭免费久久综合| 欧美成人video| 欧美成人黑人猛交| bt在线麻豆视频| 91捆绑美女网站| 国产在线拍偷自揄拍精品| 国产第一页在线播放| 成人在线电影在线观看视频| 日韩精品专区在线影院重磅| 国产精品人人妻人人爽人人牛| 色黄网站在线观看| 国产精品久久毛片av大全日韩| 国产精品夜夜夜一区二区三区尤| 国产亚洲久一区二区| 在线视频观看日韩| 精品国产美女在线| 国产激情在线免费观看| 免费精品一区| 欧美亚洲综合网| 精品国产一二三四区| av在线播放观看| 国产欧美日韩麻豆91| 国产欧美日韩综合精品二区| 91麻豆成人精品国产| 久久久一二三| 韩国福利视频一区| 69av.com| 久久久久久久久国产一区| 亚洲人精品午夜在线观看| 男男一级淫片免费播放| 精品国产欧美| 欧美日本韩国一区二区三区视频| 日本成年人网址| 182在线播放| 亚洲综合丝袜美腿| 日本高清视频免费在线观看| 午夜伦理在线| 国产精品初高中害羞小美女文| 欧美日本韩国国产| 偷拍25位美女撒尿视频在线观看| 成人精品一区二区三区中文字幕| 99re热精品| a级片在线视频| 精品一区二区三区蜜桃| 国产精品视频色| 日本一区二区三区久久| 视频一区二区三区中文字幕| 日韩免费高清在线观看| 蜜臀99久久精品久久久久小说| 国产精品丝袜xxxxxxx| 欧美一区第一页| 国产亚洲欧美在线精品| 日韩综合在线视频| 国产精品久久久亚洲| 欧美激情一区二区三区免费观看 | 久久久精品影视| 欧美成人第一区| 黄色片在线看| 国产精品乱人伦中文| 男人天堂成人网| 亚洲精品天堂| 亚洲成人av电影| 波多野结衣家庭教师视频| 免费成人直播| 欧美日韩久久一区| wwwxxx色| 在线看成人短视频| 中文字幕一精品亚洲无线一区 | 国产精品刘玥久久一区| 亚洲精品欧美在线| 好吊妞无缓冲视频观看| 日本综合字幕| 91精品国产综合久久久久| 一区二区三区四区影院| 亚州综合一区| 日韩一区二区久久久| 麻豆91精品91久久久| aⅴ色国产欧美| 国产精品偷伦视频免费观看国产| 国产黄色一区二区| 91小视频免费看| 一区二区不卡视频| 97天天综合网| 欧美日韩亚洲综合| 男人的天堂影院| 日本久久黄色| 久久人91精品久久久久久不卡| 亚洲精品中文字幕乱码三区91| 国精品**一区二区三区在线蜜桃| 国内视频一区二区| 日本福利在线| 欧美日韩免费观看中文| 在线免费黄色网| 亚洲精品国产动漫| 欧美丰满片xxx777| 欧美日韩 一区二区三区| 国产电影一区二区三区| 久久久综合亚洲91久久98| 国产日产一区二区| 色老综合老女人久久久| 成人啪啪18免费游戏链接| 国产欧美日韩精品一区二区免费 | 国产成人精品免费看| 欧美一区二区三区四区在线观看地址| av中文字幕在线观看| 日本精品视频一区二区| 精品国产乱码久久久久夜深人妻| 国产在线日韩精品| 97在线观看免费| 国产丰满美女做爰| 中文字幕五月欧美| 成人免费视频久久| 精品国产一区二区三区不卡蜜臂| 久久精品国产v日韩v亚洲| 国产第一页在线观看| 99久久精品免费看国产| 久久久99精品视频| 国产亚洲高清在线观看| 日日骚av一区| 这里只有精品999| 久久久久久夜精品精品免费| 国产 日韩 欧美在线| 日韩欧美中文字幕在线视频| 久久激情五月丁香伊人| 中文字幕网址在线| 国产亚洲精品免费| 国产欧美高清在线| 久久动漫网址| 97精品国产91久久久久久| 国产av精国产传媒| 亚洲激情中文1区| 91插插插影院| 一区二区三区中文| 91精品啪aⅴ在线观看国产| 在线视频三区| 欧美精品三级日韩久久| 国产在线观看免费视频软件| 久久99在线观看| 99亚洲精品视频| 国产一区二区久久久久| 久久精视频免费在线久久完整在线看| 一区两区小视频| 最近中文字幕一区二区三区| 最新天堂在线视频| 国产精品久久久久久| 国产日本欧美在线观看| 免费a级在线播放| 日韩一区二区三区在线观看| 欧美日韩在线观看成人| 国产v综合v亚洲欧| 久久精品国产sm调教网站演员| 啪啪激情综合网| 欧美专区中文字幕| 国产区视频在线播放| 精品婷婷伊人一区三区三| 糖心vlog免费在线观看| 国产精品中文字幕欧美| 亚洲人成无码网站久久99热国产| 欧美久久精品| 国产精品免费福利| 在线中文字幕-区二区三区四区| 日韩三级av在线播放| 懂色av.com| 久久精品视频在线看| 在线观看国产中文字幕| 中文字幕午夜精品一区二区三区| 丁香婷婷久久久综合精品国产 | 天天色图综合网| 69视频在线观看免费| 国产在线精品一区二区夜色| 妞干网在线观看视频| 杨幂一区二区三区免费看视频| 国产精品男人的天堂| av网址在线看| 亚洲精品小视频在线观看| 中文字幕在线观看高清| 一区二区三区欧美日| 成人网站免费观看| 精品一区二区在线看| 国产日韩欧美精品在线观看| 国产a久久精品一区二区三区 | 精品国产一区二区三区四区| 成人性教育视频在线观看| 9999精品成人免费毛片在线看| 国产亚洲精品久久久优势| 亚洲成熟女性毛茸茸| 色乱码一区二区三区88| 久久久久久久国产视频| 国产欧美久久久精品影院| 亚洲av综合色区无码另类小说| 欧美亚洲三区| 久久久无码中文字幕久...| 美女亚洲一区| 成人三级在线| 亚洲天堂网站| 日韩美女免费视频| 日韩激情av| 中文字幕亚洲欧美一区二区三区 | 日韩亚洲第一页| 亚洲人视频在线观看| 欧美一级高清大全免费观看| 国产精品视频一区在线观看| 亚洲图片欧美综合| 久久噜噜色综合一区二区| 91免费视频观看| 无码人妻一区二区三区精品视频| 美女诱惑一区二区| 亚洲熟妇av日韩熟妇在线| 欧美一区激情| 一本色道久久综合亚洲二区三区| 日韩aaa久久蜜桃av| 99在线高清视频在线播放| 久久日本片精品aaaaa国产| 人妖精品videosex性欧美| 激情影院在线| 美女久久久久久久| 日本中文在线| 中文亚洲视频在线| 男人久久精品| 日韩精品中文字幕久久臀| 日韩在线观看视频网站| 日韩亚洲欧美中文三级| 99久久精品免费看国产交换| 欧美三级三级三级爽爽爽| 99re这里只有精品在线| 狠狠躁夜夜躁久久躁别揉| 日本黄色片视频| 五月婷婷欧美视频| 国产成人啪精品午夜在线观看| 亚洲一区二区美女| 久久久久成人精品无码| 亚洲一区二区三区影院| 久久久久久久中文字幕| 一区二区三区中文字幕| 青青青在线免费观看| 亚洲天堂久久久久久久| 一区二区三区在线播放视频| 国产精品免费丝袜| 日韩欧美视频免费观看| 亚洲天堂2014| 五月天丁香激情| 亚洲一区二区三区四区不卡| 久久免费播放视频| 亚洲成人激情av| 亚洲av中文无码乱人伦在线视色| 欧美性猛交xxxx乱大交| 亚洲国产成人精品女人久久| 在线观看日韩av先锋影音电影院| 这里只有精品国产| 69久久99精品久久久久婷婷| va婷婷在线免费观看| 精品久久久影院| 婷婷婷国产在线视频| 国产亚洲精品va在线观看| av网站在线免费播放| xx视频.9999.com| 欧洲成人综合网| 欧美中文字幕精品| 日本精品网站| 91亚洲精品久久久| 国产伦精品一区二区三区在线播放| 久久96国产精品久久99软件| 国产麻豆一区二区三区精品视频| 亚洲午夜精品一区二区三区| 欧美99久久| 日韩在线一级片| 久久超碰97中文字幕| 日本中文字幕有码| 久久久久久一二三区| 国产美女福利视频| 亚洲观看高清完整版在线观看| 欧美 日韩 精品| 欧美日韩久久久久久| 亚洲成人黄色片| 亚洲欧美日韩中文在线| 黄色网页网址在线免费| 97在线日本国产| 免费一级欧美在线观看视频| www.成人av| 日本欧美视频| 久久久性生活视频| 七七婷婷婷婷精品国产| 无码人妻一区二区三区免费n鬼沢| 久久久久久夜精品精品免费| 欧美国产在线看| 欧美午夜影院一区| 欧美亚洲精品在线观看| 丝袜美腿精品国产二区| 日本在线影院| 91免费看网站| 欧美丝袜激情| 久久免费视频3| 国产盗摄一区二区三区| 欧美精品日韩在线| 精品国产精品三级精品av网址| 国产毛片毛片毛片毛片| 日韩激情视频在线| 综合久久2019| 国产精品最新在线观看| 色婷婷久久久| 国产欧美精品aaaaaa片| 男人的j进女人的j一区| 欧美亚一区二区三区| 亚洲一区视频在线观看视频| 在线免费看av的网站| 亚洲女人天堂视频| bl在线肉h视频大尺度| 91久久嫩草影院一区二区| 精品一区不卡| 哪个网站能看毛片| 成人国产一区二区三区精品| 91人妻一区二区三区蜜臀| 欧美日韩一区小说| 成人免费高清在线播放| 欧美诱惑福利视频| 国产精品xxx在线观看| 中文字幕乱码免费| 久久国产精品第一页| 欧美人与性囗牲恔配| 日本韩国欧美在线| 男男电影完整版在线观看| 91福利视频网| 欧美午夜寂寞| 秋霞无码一区二区| 成人av网址在线| 国产在线综合网| 精品免费国产二区三区 | 99久久夜色精品国产亚洲1000部| 人妻无码视频一区二区三区| 久久综合久色欧美综合狠狠| 天天操天天操天天操天天| 日韩av在线精品| 国产精品粉嫩| 秋霞久久久久久一区二区| 久久久久99| 一级特黄曰皮片视频| 欧美视频中文一区二区三区在线观看| 国产黄色免费在线观看| 国产精品第七影院| 欧洲乱码伦视频免费| 天天干天天干天天干天天干天天干| 国产日韩欧美精品一区| 亚洲高清视频免费观看| 尤物99国产成人精品视频| 国产精品一区二区免费福利视频 | 亚洲国产精品一区制服丝袜| 国产精品成人99一区无码| 欧美日韩精品二区| 三区在线视频| 国产精品免费视频xxxx| 天天操夜夜操国产精品| 曰本三级日本三级日本三级| 亚洲va国产天堂va久久en| 天堂资源最新在线| 国产精品99免视看9| 99久久精品网| 日批视频免费看| 欧美色视频日本版| av电影在线观看| 99re在线播放| 国产精品美女久久久| 美女100%露胸无遮挡| 日韩三级视频在线看| 免费毛片b在线观看| 亚洲欧洲另类精品久久综合| 国产电影一区二区三区| 中文字幕第四页| 日韩在线观看免费| 国产精品一线| 9久久婷婷国产综合精品性色| 亚洲欧美另类图片小说| 欧美日韩伦理片| 91久久精品美女高潮| 日韩午夜免费视频| ass极品国模人体欣赏| 欧美mv日韩mv国产网站| 在线成人视屏| 黄色片免费在线观看视频| 久久亚洲欧美国产精品乐播| 国产精品羞羞答答在线| 8090成年在线看片午夜| 日韩在线观看电影完整版高清免费悬疑悬疑| 97超碰免费在线观看| 欧美性xxxx极品hd满灌| 成人福利网站| 日产国产精品精品a∨| 国产成人精品免费看| 中文字幕在线播放日韩| 91成人在线播放| 午夜国产精品视频免费体验区| 四虎永久免费在线观看|