磁盘和文件系统管理(二)

本文发布时间: 2019-Mar-22
对于linux系统的使用者来说如何正确的来进行系统的分区,如何当初对系统评估不准确的话,那么一旦系统分区不够用了,那么不得不备份,删除相关数据,重要的时候被迫还得重新规划分区并装系统来满足需求。今天我们来写一下如何在linux下进行LVM逻辑卷的使用,让我们自由调整分区容量。一. LVM逻辑卷管理概述LVM:(逻辑卷管理Logical Volume Manager)就是可以自由调整分区大小 作用:动态调整磁盘容量,从而提高磁盘管理的灵活性需要注意:/boot分区用于存放引导文件,不能基于LVM创建图形界面:system-config-lvmLVM的管理命令PV(Physical Volume,物理卷)整个硬盘,或使用fdisk等工具建立的普通分区包括许多默认4MB大小的PE(Physical Extent,基本单元)VG(Volume Group,卷组) 一个或多个物理卷组合而成的整体LV(Logical Volume,逻辑卷) 从卷组中分割出的一块空间,用于建立文件系统LVM应用实例功能物理卷管理卷组管理逻辑卷管理Scan 扫描pvscanvgscanlvscanCreate 建立pvcreatevgcreatelvcreateDisplay 显示pvdisplayvgdisplaylvdisplayRemove 删除pvremovevgremovelvremoveExtend 扩展vgextendlvextendReduce 减少vgreducelvreduce首先我在系统上添加了两块硬盘 /dev/sdb /dev/dbc来为下面的LVM做准备,你也可以先进行fdisk工具分完区然后再做PV,此处我们直接拿新添加的硬盘来做PV1.物理卷【PV】的创建、删除.创建物理卷【pvcreate 设备名/设备名2….】[root@localhost ~]# pvcreate /dev/sdb /dev/sdc Physical volume '/dev/sdb' successfully created Physical volume '/dev/sdc' successfully created[root@localhost ~]# pvscan PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 49.51g 0 /dev/sdb lvm2 a-- 100.00g 100.00g /dev/sdc lvm2 a-- 50.00g 50.00g[root@localhost ~]# pvdisplay --- Physical volume --- '/dev/sdb' is a new physical volume of '100.00 GiB' --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 100.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID su9PDS-jtXa-SKWH-n4Pf-TM0j-w8SW-swgd6d '/dev/sdc' is a new physical volume of '50.00 GiB' --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 50.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID AASOe8-1yje-2rjn-O33d-0y27-PmIw-YoYCpF删除物理卷【pvremove 设备名/设备名2….】前提是下面没有分配VG[root@localhost ~]# pvremove /dev/sdc Labels on physical volume '/dev/sdc' successfully wiped[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb vg_new lvm2 a-- 100.00g 50.00g[root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb VG Name vg_new PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 25599 Free PE 12799 Allocated PE 12800 PV UUID su9PDS-jtXa-SKWH-n4Pf-TM0j-w8SW-swgd6d2.卷组【VG】创建、扩展、减少、删除、创建卷组【vgcreate 卷组名 物理卷名1 物理卷名2 】[root@localhost ~]# vgcreate vg_new /dev/sdb /dev/sdc Volume group 'vg_new' successfully created[root@localhost ~]# vgscan Reading all physical volumes. This may take a while... Found volume group 'vg_new' using metadata type lvm2 Found volume group 'VolGroup' using metadata type lvm2[root@localhost ~]# vgdisplay --- Volume group --- VG Name vg_new System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 149.99 GiB PE Size 4.00 MiB Total PE 38398 Alloc PE / Size 0 / 0 Free PE / Size 38398 / 149.99 GiB VG UUID qZmTmm-g2fV-La4E-vzcN-yN9S-giyQ-eWra2G扩展卷组【vgextend 卷组名 物理卷名】[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_new 1 0 0 wz--n- 50.00g 50.00g[root@localhost ~]# vgextend vg_new /dev/sdb Volume group 'vg_new' successfully extended[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_new 2 0 0 wz--n- 149.99g 149.99g[root@localhost ~]# vgdisplay --- Volume group --- VG Name vg_new System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 149.99 GiB PE Size 4.00 MiB Total PE 38398 Alloc PE / Size 0 / 0 Free PE / Size 38398 / 149.99 GiB VG UUID 31tIMa-ldzd-caOd-0lsl-tZnY-QN47-H6mYO9缩减卷组【vgreduce 卷组名 物理卷】[root@localhost ~]# vgreduce vg_new /dev/sdb Removed '/dev/sdb' from volume group 'vg_new'[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_new 1 0 0 wz--n- 50.00g 50.00g[root@localhost ~]# vgdisplay --- Volume group --- VG Name vg_new System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 50.00 GiB PE Size 4.00 MiB Total PE 12799 Alloc PE / Size 0 / 0 Free PE / Size 12799 / 50.00 GiB VG UUID 31tIMa-ldzd-caOd-0lsl-tZnY-QN47-H6mYO9删除卷组【vgremove 卷组名 】[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree VolGroup 1 2 0 wz--n- 49.51g 0 vg_new 1 0 0 wz--n- 50.00g 50.00g[root@localhost ~]# vgremove vg_new Volume group 'vg_new' successfully removed3.逻辑卷【LV】创建、扩展、缩减、删除创建逻辑卷【lvcreate -L 大小 -n 逻辑卷名 卷组名 】[root@localhost ~]# lvcreate -L 50G -n lv_new vg_new Logical volume 'lv_new' created[root@localhost ~]# lvscan ACTIVE '/dev/vg_new/lv_new' [50.00 GiB] inherit[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/vg_new/lv_new LV Name lv_new VG Name vg_new LV UUID wxH3Nn-GKXH-UrRX-Xotl-1bVi-GWUC-VQejzZ LV Write Access read/write LV Creation host, time localhost, 2016-04-17 13:17:13 -0400 LV Status available # open 0 LV Size 50.00 GiB Current LE 12800 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 扩展逻辑卷【lvextend -L +大小 /dev/卷组名/逻辑卷名】[root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_new vg_new -wi-a---- 50.00g [root@localhost ~]# lvextend -L +20G /dev/vg_new/lv_new Extending logical volume lv_new to 70.00 GiB Logical volume lv_new successfully resized[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/vg_nw/lv_new LV Name lv_new VG Name vg_new LV UUID 1JAHRk-JShy-jsqE-IpOL-Bzbq-VGOS-0HhVtz LV Write Access read/write LV Creation host, time localhost, 2016-04-17 13:56:42 -0400 LV Status available # open 0 LV Size 70.00 GiB Current LE 17920 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2缩减逻辑卷空间【注意:必须按以下几步操作】1、 先卸载逻辑卷lv_new 【逻辑卷只在挂载目录使用】[root@localhost ~]# df -ThFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root ext4 45G 3.2G 40G 8% /tmpfs tmpfs 491M 0 491M 0% /dev/shm/dev/sda1 ext4 485M 38M 423M 9% /boot/dev/mapper/vg_new-lv_new ext4 69G 180M 66G 1% /date[root@localhost ~]# [root@localhost ~]# [root@localhost ~]# umount /date2、 然后通过e2fsck命令检测逻辑卷上空余的空间。[root@localhost ~]# e2fsck -f /dev/vg_new/lv_new e2fsck 1.41.12 (17-May-2010)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information/dev/vg_new/lv_new: 139/4587520 files (0.0% non-contiguous), 334336/18350080 blocks3、 使用resize2fs将文件系统减少到50G。[root@localhost ~]# resize2fs /dev/mapper/vg_new-lv_new 50Gresize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/mapper/vg_new-lv_new to 13107200 (4k) blocks.The filesystem on /dev/mapper/vg_new-lv_new is now 13107200 blocks long.4、 再使用lvreduce命令将逻辑卷减少到50G。[root@localhost ~]# lvreduce -L 50G /dev/vg_new/lv_new WARNING: Reducing active logical volume to 50.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce lv_new? [y/n]: Y Reducing logical volume lv_new to 50.00 GiB Logical volume lv_new successfully resized[root@localhost ~]# mount /dev/vg_new/lv_new /date[root@localhost ~]# df -ThFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root ext4 45G 3.2G 40G 8% /tmpfs tmpfs 491M 0 491M 0% /dev/shm/dev/sda1 ext4 485M 38M 423M 9% /boot/dev/mapper/vg_new-lv_new ext4 50G 182M 47G 1% /date注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。如果逻辑卷小于文件系统,哪数据就出问题了删除逻辑卷【lvremove /dev/vg_new/lv_new】[root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_new vg_new -wi-a---- 50.00g [root@localhost ~]# lvremove /dev/vg_new/lv_new Do you really want to remove active logical volume lv_new? [y/n]: Y Logical volume 'lv_new' successfully removed如果某一个块物理磁盘或者分区故障了,如何将数据转移到其他卷组空间中。1、通过pvmove命令转移空间数据[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 49.51g 0 /dev/sdb vg0 lvm2 a-- 100.00g 100.00g /dev/sdc vg0 lvm2 a-- 50.00g 50.00g[root@localhost ~]# pvmove /dev/sdb /dev/sdc2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去。[root@localhost ~]# vgreduce lv_new /dev/sdb3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。[root@localhost ~]# pvremove /dev/sdb4、手工拆除硬盘或者通过一些工具修复分区。二.设置磁盘配额实现磁盘限额的条件 1.需要Linux内核支持 2.安装quota软件包Linux磁盘限额的特点作用范围:针对指定的文件系统(分区)限制对象:用户帐号、组帐号 限制类型: 磁盘容量(默认单位为KB) 文件数量限制方法: 软限制:一个用户在一定时间范围内(默认为一周,可以使用命令“edquota -t”重新设置,时间单位可以为天、小时、分 钟、秒)超过其限制的额度,在不超出硬限制的范围内可以继续使用空间,系统会发出警告(警告信息设置文件为“/etc/warnquota.conf”),但如果用户达到时间期限仍未释放空间到限制的额度下,系统将不再允许该用户使用更多的空间。 硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制。启用文件系统的配额支持 添加usrquota、grpquota挂载参数 检测磁盘配额并创建配额文件使用quotacheck命令创建配额文件quotacheck -ugcv 文件系统quotacheck -augcv-u、-g:检测用户、组配额 -c:创建配额数据文件 -v:显示执行过程信息 -a:检测所有可用的分区编辑用户和组帐号的配额设置 使用edquota命令编辑配额设置 edquota -u 用户名 edquota -g 组名启用、关闭文件系统的配额功能 使用quotaon、quotaoff命令验证磁盘配额功能必须切换到设置配额的分区(挂载目录) 创建指定数量的文件:使用touch命令,或cp命令 创建指定容量的文件:使用dd命令,或cp命令查看配额使用情况 侧重用户、组帐号角度:使用quota命令 quota -u 用户名 quota -g 组名 侧重文件系统角度:使用repquota1. 练习步骤:创建用户hunter,并设置为此用户进行磁盘配额[root@localhost ~]# useradd hunter[root@localhost ~]# passwd hunterChanging password for user hunter.New password: Retype new password: passwd: all authentication tokens updated successfully.创建一个逻辑分区,对此分区设置配额。[root@localhost ~]# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): nCommand action e extended p primary partition (1-4)ePartition number (1-4): 4First cylinder (1-13054, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): Using default value 13054Command (m for help): Command (m for help): pDisk /dev/sdb: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xb8d88355 Device Boot Start End Blocks Id System/dev/sdb4 1 13054 104856223+ 5 ExtendedCommand (m for help): nCommand action l logical (5 or over) p primary partition (1-4)lFirst cylinder (1-13054, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): Using default value 13054Command (m for help): pDisk /dev/sdb: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xb8d88355 Device Boot Start End Blocks Id System/dev/sdb4 1 13054 104856223+ 5 Extended/dev/sdb5 1 13054 104856192 83 LinuxCommand (m for help): w[root@localhost ~]# ls /dev/sdb*/dev/sdb /dev/sdb4 /dev/sdb5[root@localhost ~]# partx -a /dev/sdbsdb sdb4 sdb5 [root@localhost ~]# partx -a /dev/sdbBLKPG: Device or resource busyerror adding partition 4BLKPG: Device or resource busyerror adding partition 5[root@localhost ~]# ls /dev/sdb*/dev/sdb /dev/sdb4 /dev/sdb5创建挂载点,并格式化分区和文件系统[root@localhost ~]# mkdir /quota[root@localhost ~]# mkfs.ext4 /dev/sdb5mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks6553600 inodes, 26214048 blocks1310702 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=4294967296800 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 25 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.修改配置文件,设置挂载位置永久生效。[root@localhost date]# df -ThFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root ext4 45G 3.2G 40G 8% /tmpfs tmpfs 491M 0 491M 0% /dev/shm/dev/sda1 ext4 485M 38M 423M 9% /boot/dev/sdb5 ext4 99G 188M 94G 1% /quota[root@localhost date]# vim /etc/fstab ## /etc/fstab# Created by anaconda on Mon Jun 15 08:16:31 2015## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1UUID=1773339b-7194-409d-872d-6a850058e748 /boot ext4 defaults 1 2/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0[root@localhost date]# mount -a [root@localhost date]# df -THFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root ext4 49G 3.5G 43G 8% /tmpfs tmpfs 515M 0 515M 0% /dev/shm/dev/sda1 ext4 508M 39M 443M 9% /boot/dev/sdb5 ext4 106G 197M 101G 1% /quota使用quotacheck命令生成配置磁盘配置的数据库文件,如果出现以下权限不够的情况,通过setenforce 0临时关掉selinux就可以了,quotacheck执行成功可以看到/quota/下面多了两个文件。然后通过quotaon /quota/启动对应文件系统上的磁盘配额功能。[root@localhost date]# quotacheck -cug /quotaquotacheck: Cannot create new quotafile /quota/aquota.user.new: Permission deniedquotacheck: Cannot initialize IO on new quotafile: Permission deniedquotacheck: Cannot create new quotafile /quota/aquota.group.new: Permission deniedquotacheck: Cannot initialize IO on new quotafile: Permission denied[root@localhost date]# setenforce 0 ---> 将selinux进行关闭[root@localhost date]# quotacheck -cug /quota[root@localhost date]# ls -ltr total 0[root@localhost date]# ls -ltr /quotatotal 32drwx------. 2 root root 16384 Apr 17 16:39 lost+found-rw-------. 1 root root 6144 Apr 17 18:46 aquota.user-rw-------. 1 root root 6144 Apr 17 18:46 aquota.group通过edquota -u hunter配置用户hunter对这个磁盘分区的使用配额。还可以通过edquota -g groupname 对groupname这个组设定配额[root@localhost date]# edquota -u hunter Disk quotas for user hunter (uid 501): Filesystem blocks soft hard inodes soft hard /dev/sdb5 2 10240 20480 2 5 10Filesystem 文件系统blocks 已经使用的块数(块的单位为1K) soft 块数软限制,0表示禁用 hard 块数硬限制,0表示禁用 inodes 已经创建的文件个数,如果后面有*表示已经超出软限制 soft 创建的文件个数的软限制,0表示禁用 hard 创建的文件个数的硬限制,0表示禁用 edquota -p user1 user2 把user1用户的设定复制给user2用户这里对hunter这个用对该分区磁盘的容量软限制为10M,硬限制为20M(即使该分区有50M的空间),对文件个数的软限制为5个,硬限制为10个。下面进行测试,测试之前要给hunter这个用户对/quota目录写权限。进入实战测试,看刚才我给hunter用户做的磁盘限额是否生效[root@localhost date]# su - hunter #切换到hunter用户[hunter@localhost ~]$ cd /quota/[hunter@localhost quota]$ touch user{1..5} #创建5个空文件[hunter@localhost quota]$ ls -ltr total 32drwx------. 2 root root 16384 Apr 17 16:39 lost+found-rw-------. 1 root root 7168 Apr 17 19:59 aquota.user-rw-rw-r--. 1 hunter hunter 0 Apr 17 20:06 user5-rw-rw-r--. 1 hunter hunter 0 Apr 17 20:06 user4-rw-rw-r--. 1 hunter hunter 0 Apr 17 20:06 user3-rw-rw-r--. 1 hunter hunter 0 Apr 17 20:06 user2-rw-rw-r--. 1 hunter hunter 0 Apr 17 20:06 user1-rw-------. 1 root root 7168 Apr 17 20:06 aquota.group[hunter@localhost quota]$ touch user6 #此处触发了软限制sdb5: warning, user file quota exceeded.[hunter@localhost quota]$ ls aquota.group aquota.user lost+found use6 user1 user2 user3 user4 user5[hunter@localhost quota]$ touch user{7..15} #此处真正到了硬限制sdb5: write failed, user file limit reached.touch: cannot touch `user11': Disk quota exceededtouch: cannot touch `user12': Disk quota exceededtouch: cannot touch `user13': Disk quota exceededtouch: cannot touch `user14': Disk quota exceededtouch: cannot touch `user15': Disk quota exceeded[hunter@localhost quota]$ rm -rf user* #删除之后我们再来试验一下容量的限制[hunter@localhost quota]$ ls -ltr total 32drwx------. 2 root root 16384 Apr 17 16:39 lost+found-rw-------. 1 root root 7168 Apr 17 19:59 aquota.user-rw-------. 1 root root 7168 Apr 17 20:06 aquota.group[hunter@localhost quota]$ dd if=/dev/zero of=text.txt bs=1M count=11sdb5: warning, user block quota exceeded. #此处已经触发了容量10M的软限制,不过还能进行写入11+0 records in11+0 records out11534336 bytes (12 MB) copied, 0.373587 s, 30.9 MB/shunter@localhost quota]$ dd if=/dev/zero of=text.txt bs=1M count=21 sdb5: warning, user block quota exceeded.#此处已经触发了20M的硬限制,现已经写不进去了,看来做的对用户的磁盘限额没有问题。sdb5: write failed, user block limit reached.dd: writing `text.txt': Disk quota exceeded21+0 records in20+0 records out20971520 bytes (21 MB) copied, 0.351462 s, 59.7 MB/s切换root用户使用repquota -a来查看当前各磁盘配额的使用情况。从下图可以看出hunter用户已经达到了磁盘使用的最大容量限制[root@localhost date]# repquota -a *** Report for user quotas on device /dev/sdb5Block grace time: 7days; Inode grace time: 7days Block limits File limitsUser used soft hard grace used soft hard grace----------------------------------------------------------------------root -- 20 0 0 2 0 0 hunter +- 11264 10240 20480 6days 1 5 10 需要注意的是,当用户触发软限制时,grace time就会倒计时,在这个时间(默认是7天)没有耗尽之前,若用户还不清理磁盘使之符合软限制的要求,则软限制就会变成硬限制,这个时间叫宽限期。可以通过edquota -t设置这个时间,分别设置容量和文件数量的宽限期。[root@localhost date]# edquota -tGrace period before enforcing soft limits for users:Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sdb5 7days 7days对于LVM逻辑卷和磁盘配额还是比较重要的,请各位大神多多指教!!!给大家推荐一个可以将EXCEL表格转化成HTML格式的在线网址:http://pressbin.com/tools/excel_to_html_table/index.html


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:08pm
栏目列表