精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91视频国产一区| 日韩一区二区三区xxxx| 免费高清在线观看免费| 国产黄色片在线观看| 麻豆视频一区二区| 欧美激情va永久在线播放| av网站有哪些| 日韩福利在线观看| 亚洲成人自拍偷拍| 亚洲欧美日韩精品在线| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 在线免费一区三区| 异国色恋浪漫潭| 亚洲欧洲精品视频| 国产一区日韩二区欧美三区| 97色在线观看| 中文字幕人妻一区二区三区| 欧美日韩尤物久久| 中文字幕高清不卡| 国产成人精品视| xxxx日本少妇| 欧美美女在线| 精品国精品国产尤物美女| 91色国产在线| 蜜桃视频m3u8在线观看| 91色婷婷久久久久合中文| 成人国产精品免费视频| 欧产日产国产69| 亚洲手机在线| 美女福利视频一区| 成人黄色a级片| 女仆av观看一区| 色综合久久天天| 天天好比中文综合网| 国产精品无码专区av免费播放| 97久久夜色精品国产| 亚洲精品色婷婷福利天堂| 精品久久久久av| 69av成人| 中文字幕欧美日韩一区| 国产精品视频免费在线| av黄色在线看| 精品白丝av| 欧美精品做受xxx性少妇| 国产人妻精品久久久久野外| 久久人体av| 在线观看国产精品网站| jizzjizzxxxx| 天堂√8在线中文| 午夜久久久久久久久| 韩国无码av片在线观看网站| 亚洲精品成人电影| 国内精品视频一区二区三区八戒| 久久视频在线观看免费| 欧美日韩生活片| 欧美精品一区二区三区中文字幕| 欧美日韩国产123区| 一区二区三区四区国产| 99热这里只有精品9| 美女网站色91| 久久精品99久久久久久久久| 制服丝袜在线第一页| 亚洲一二av| 91精品国产一区二区三区蜜臀 | 综合成人在线| 欧美成人在线直播| 成人在线免费播放视频| 松下纱荣子在线观看| 欧美午夜视频在线观看| 99久久久无码国产精品6| 欧美成人黑人| 日本韩国一区二区三区视频| www.爱色av.com| 大胆人体一区二区| 在线观看日韩精品| 色天使在线观看| 国产成人久久精品一区二区三区| 日韩欧美中文在线| 五月婷婷狠狠操| 妞干网免费在线视频| 日韩欧美国产中文字幕| 冲田杏梨av在线| 精品国产一区二区三区性色av| 欧美亚洲动漫制服丝袜| 青青草久久伊人| 视频二区欧美| 亚洲开心激情网| 欧产日产国产精品98| 丝袜久久网站| 亚洲精品一区二区三区影院 | 国产精品久久久久久久av| 色135综合网| 欧美日韩成人在线观看| 久久久久女人精品毛片九一| 捆绑调教美女网站视频一区| 97se国产在线视频| 免费在线观看一级毛片| 国产精品不卡在线| 日本不卡在线播放| 中文字幕有码在线观看| 色久优优欧美色久优优| 成人三级做爰av| 国产伦精品一区二区三区视频| 精品视频久久久| 51精品免费网站| 翔田千里一区二区| 亚洲一区二区三区xxx视频| 国产精品探花视频| 国产精品一级二级三级| 欧美一二三区| а√天堂资源官网在线资源| 欧美性猛交xxxx免费看久久久| 国产美女网站在线观看| 欧美激情不卡| 亚洲乱码国产乱码精品精天堂| 爱爱的免费视频| 你懂的一区二区| 国产成人av网| 男人天堂一区二区| 17c精品麻豆一区二区免费| 公共露出暴露狂另类av| 日韩三级电影视频| 欧美喷潮久久久xxxxx| 第四色在线视频| 精品免费视频| 91国语精品自产拍在线观看性色 | 亚洲图片激情小说| 麻豆一区二区三区在线观看| 高清电影一区| 日韩二区三区在线| 国产亚洲欧美久久久久| 99日韩精品| 粉嫩精品一区二区三区在线观看| 四虎在线免费观看| 亚洲第一激情av| 97成人在线免费视频| 久久久人成影片一区二区三区在哪下载| 欧美在线啊v一区| 私密视频在线观看| 亚洲国产专区| 国产精品欧美久久| 伦理在线一区| 精品国产乱码久久久久久1区2区| 人人妻人人藻人人爽欧美一区| 国产精品精品| 国产一区视频在线播放| 岛国在线大片| 在线欧美小视频| 亚洲av无码国产精品麻豆天美| 中文无码久久精品| 亚洲在线视频福利| 你懂的在线观看| 一本久道久久综合中文字幕| 少妇精品一区二区三区| 国产精品亚洲欧美| 欧美日本韩国一区二区三区| 高清av不卡| 亚洲色图五月天| 精品在线视频免费观看| 成人免费视频视频在线观看免费| 一级二级三级欧美| 玖玖精品在线| 亚洲欧美国产精品| 艳妇乳肉豪妇荡乳av无码福利| 成人av在线资源| 免费看又黄又无码的网站| 日韩极品在线| 欧美激情一级欧美精品| 肥臀熟女一区二区三区| 午夜视频在线观看一区二区 | 99久久久精品| 日本成年人网址| 精品美女久久| 91精品在线观| 超碰97免费在线| 亚洲欧洲一区二区三区在线观看| 日本一区二区不卡在线| 国产乱码精品一区二区三区五月婷 | 中文日韩在线观看| 国产男男gay网站| 亚洲国产精品一区二区www在线| 伊人五月天婷婷| 亚洲国产国产亚洲一二三| 亚洲一区二区三区乱码aⅴ| 精精国产xxxx视频在线中文版| 欧美一区二区大片| 一级黄色片日本| 成年人午夜久久久| 国产美女久久久久久| 欧美巨大xxxx| 国产成人极品视频| 色综合久久久久综合一本到桃花网| 欧美日韩美女视频| 成人午夜免费影院| 懂色av一区二区三区免费观看| 中文字幕一区二区三区精彩视频| 91九色综合| 欧美精品videosex性欧美| 日韩亚洲视频在线观看| 91精品麻豆日日躁夜夜躁| 欧美三级一区二区三区| 中文字幕亚洲一区二区av在线| 浓精h攵女乱爱av| 欧美成人精品| 台湾成人av| 欧美精品密入口播放| 国产一区私人高清影院| 日韩伦理在线| 欧美精品一区三区| 春暖花开成人亚洲区| 亚洲成人动漫在线播放| 91在线观看喷潮| 色综合视频在线观看| 欧美黑人精品一区二区不卡| 国产色综合久久| 日本一卡二卡在线| 亚洲国产三级| 天堂v在线视频| 91精品国产乱码久久久竹菊| 国产做受69高潮| 免费大片在线观看www| 亚洲精品视频久久| 国产成人av免费| 五月综合激情婷婷六月色窝| 人妻无码一区二区三区| 国产成人免费视频| 色91精品久久久久久久久| 美日韩精品视频| 青青草视频在线免费播放 | 亚洲一区二区三区中文字幕在线| 99热这里只有精品在线播放| 日韩亚洲一区在线| 久久久久久高清| av在线一区不卡| 91精品国产免费久久久久久| 性欧美video高清bbw| 亚洲精品中文字幕有码专区| 这里只有精品免费视频| 综合久久给合久久狠狠狠97色| 韩国一区二区三区四区| 精品一区二区三区的国产在线播放 | 欧美极品少妇xxxxⅹ免费视频| 三级视频网站在线| 亚洲精品黄网在线观看| 蜜臀久久99精品久久久| 91激情五月电影| 日本熟女毛茸茸| 欧美性猛交xxxx| 欧美成人777| 亚洲女人****多毛耸耸8| 国产精品视频看看| 日韩毛片一二三区| 久久精品国产亚洲av麻豆| 久久综合久久综合久久综合| 狠狠人妻久久久久久综合蜜桃| 狠狠色综合色综合网络| 91日韩精品视频| 国产一区不卡在线| 久久久久亚洲AV成人网人人小说| 蜜臀av性久久久久蜜臀aⅴ流畅| av免费看网址| aⅴ色国产欧美| 免费在线观看日韩视频| 久久综合九色综合欧美狠狠| 草草草在线视频| 美女视频一区在线观看| 亚洲日本黄色片| 成人性视频免费网站| 亚洲调教欧美在线| 国产高清成人在线| 亚洲自拍偷拍精品| 久久香蕉国产线看观看99| 国产在线综合视频| 国产精品无码永久免费888| 精品国产视频在线观看| 亚洲一区二区四区蜜桃| 视频一区二区三区四区五区| 欧美亚洲高清一区| www香蕉视频| 精品视频久久久久久| 免费黄色在线| 国内精品久久久| 天堂久久午夜av| 97av自拍| 欧洲毛片在线视频免费观看| 久久久久久久久久久久久国产| 97精品国产| 少妇人妻在线视频| 七七婷婷婷婷精品国产| 久久久精品麻豆| 国产白丝网站精品污在线入口| 欧美又黄又嫩大片a级| 成人久久视频在线观看| 久久久久中文字幕亚洲精品| 91视视频在线观看入口直接观看www| 催眠调教后宫乱淫校园| 国产日产欧美一区二区视频| av电影网站在线观看| 综合分类小说区另类春色亚洲小说欧美| 国产99在线 | 亚洲| 亚洲一区二区av电影| 日韩欧美一级大片| 精品国产乱码久久久久久闺蜜| 欧日韩在线视频| 色偷偷亚洲男人天堂| 678在线观看视频| 91精品久久久久久久久中文字幕| 国产精品白丝久久av网站| 91免费综合在线| 亚洲大片精品免费| 国产乱子伦精品视频| 日本系列欧美系列| 无码一区二区精品| 亚洲欧美日韩综合aⅴ视频| 免费无码国产精品| 欧美日韩一区二区三区在线 | 欧美欧美午夜aⅴ在线观看| 亚洲另类在线观看| 日韩欧美一级二级三级久久久 | 亚洲天堂第二页| 好看的中文字幕在线播放| 成人写真福利网| 成人羞羞网站| 日韩欧美在线免费观看视频| 丁香激情综合五月| 91插插插插插插| 欧美午夜不卡在线观看免费| 四虎国产精品永远| 少妇高潮久久77777| 人人超在线公开视频| 国产日韩欧美在线播放| 国产精品午夜一区二区三区| 蜜桃传媒一区二区三区| 高清成人在线观看| 欧美三级在线免费观看| 91精品国产综合久久精品| 秋霞午夜在线观看| 国产精品自产拍在线观看| 精品久久成人| 97在线播放视频| 久久综合色天天久久综合图片| 四虎影视1304t| 欧美性xxxxx极品少妇| 酒色婷婷桃色成人免费av网| 2023亚洲男人天堂| 老牛精品亚洲成av人片| 一区二区三区四区五区精品| 日本不卡一二三区黄网| 中文天堂资源在线| 欧美另类变人与禽xxxxx| 91电影在线播放| 成人av在线亚洲| 欧美jjzz| 国产国语老龄妇女a片| 国产精品久久久久久久浪潮网站| 国产无精乱码一区二区三区| 精品88久久久久88久久久| 超碰在线cao| 欧美激情第六页| 热久久免费视频| 999精品视频在线观看播放| 91麻豆精品久久久久蜜臀| 奇米影视888狠狠狠777不卡| 久精品免费视频| 91精品导航| 欧美v在线观看| 国产婷婷色一区二区三区四区| 日本在线免费观看| 日韩的一区二区| 456成人影院在线观看| 一道精品一区二区三区| 国产精品99久久久| 国产精品夜夜夜爽阿娇| 91精品免费在线| 97人人爽人人澡人人精品| 欧美激情国产日韩| 久久精品国产亚洲aⅴ| 激情综合五月网| 亚洲欧美成人网| 97久久中文字幕| 亚洲精品在线免费| 国内精品伊人久久久久av影院| 999精品久久久| 精品国产伦一区二区三区免费| 国产在线1区| 国产嫩草一区二区三区在线观看| 欧美日本一区| 黄色a级三级三级三级| 五月激情综合色| 91涩漫在线观看| 国产精华一区| 日韩国产精品大片| 久久久久久久久久91| 亚洲人线精品午夜| 年轻的保姆91精品| 能在线观看的av网站| 一区二区三区在线看| 久草福利在线| www久久99| 美女视频网站黄色亚洲|