Linux运维Centos7_LVM(逻辑卷的创建与管理)

本文整理的比较粗糙,强烈推荐参考:https://www.cnblogs.com/diantong/p/10554831.html

目录

一  基本概念:

二 逻辑卷的创建与管理

2.1 创建物理卷

三 PV管理工具

3 .1 创建 PV

3.2 显示 PV

四  VG管理工具

4.1 创建VG

4.2 查看VG

4.3 此时查看pv

4.4 扩展VG

4.4.1 创建PV

4.4.2 扩展VG

4.4.3 查看扩展的VG

4.5 缩减VG 

4.5  移除PV

4.6 缩减VG

五 LV的管理、创建逻辑卷

5.1 创建逻辑卷

5.2 格式化

5.3 挂载使用

5.3.1  copy文件

 5.4 扩展逻辑卷、扩展逻辑编辑

 5.4.1  扩展逻辑卷

 5.4.2  查看 扩展后的逻辑卷

 重新挂载:

5.4.3 修改逻辑边界

5.4.5 查看修改逻辑编辑的逻辑卷大小

5.5 缩减逻辑卷

5.5.1.卸载     

5.5.2. 强制监测 

5.5.3 缩减文件系统逻辑边界

5.5.4 缩减逻辑卷

5.5.5 挂载并使用

六 快照:snapshot

卸载于删除逻辑卷

 七:虚拟机挂载U盘


一  基本概念:

LVM 逻辑卷管理器: logical Volume Manager  Version:2

dm:  device mapper   将一个或多个较为底层的块设备组织成一个逻辑设备的块模块。

一个硬盘设备或者一个分区分区,叫做pv  物理卷;

pv可以划分为一个个独立的存储单元,并且存储单位可以合并成 VG 卷组,卷组可以包含多个物理卷。

VG 卷组可以划分为LV  ,lv可以格式化使用。

PE :phsical Extent物理盘区,比block大的多

PE大小是由PV加入到VG决定的。VG就是将PV分割成多个PE来存储资源的。我们可以在VG的基础上创建LV,创建LV的过程就是将VG的多个PE组将成一个LV来存储数据。

一旦一个PE分配给LV使用后,他就叫LE 逻辑判区

对于VG来说,组织完以后设备文件,真实存在的位置为/dev/dm#

会在

/dev/mapper/VG_Name-LV_Name

        /dev/mapper/vol0-root

/dev/VG_Name/LV_Name

        /dev/vol0/root

逻辑卷可以动态扩展和缩减,而不影响磁盘。

一旦数据发生损坏,数据恢复比较困难。

二 逻辑卷的创建与管理

2.1 创建物理卷

        pv物理卷可以创建在分区、磁盘上,raid上。在这里我们先创建一个磁盘/dev/sdb在此进行演示。

首先/dev/sdb上创建分区

一个主分区/dev/sdb3  10G;

一个扩展分区/dev/sdb4 剩余空间G

一个逻辑分区分区/dev/sdb5 5G

一个逻辑分区分区/dev/sdb6 8G

[root@node001 ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xb3642d7a 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):3
起始 扇区 (2048-52428799,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-52428799,默认为 52428799):+10G                        
分区 3 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (1,2,4,默认 1):4
起始 扇区 (20973568-52428799,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-52428799,默认为 52428799):
将使用默认值 52428799
分区 4 已设置为 Extended 类型,大小设为 15 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-52428799,默认为 20975616):+5G
值超出范围。
起始 扇区 (20975616-52428799,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-52428799,默认为 52428799):          
将使用默认值 52428799
分区 5 已设置为 Linux 类型,大小设为 15 GiB

命令(输入 m 获取帮助):d
分区号 (3-5,默认 5):
分区 5 已删除

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-52428799,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-52428799,默认为 52428799):+5G
分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (31463424-52428799,默认为 31463424):
将使用默认值 31463424
Last 扇区, +扇区 or +size{K,M,G} (31463424-52428799,默认为 52428799):+8G
分区 6 已设置为 Linux 类型,大小设为 8 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb3642d7a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb3            2048    20973567    10485760   83  Linux
/dev/sdb4        20973568    52428799    15727616    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    48240639     8388608   83  Linux

命令(输入 m 获取帮助):t  
分区号 (3-6,默认 6):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb3642d7a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb3            2048    20973567    10485760   8e  Linux LVM
/dev/sdb4        20973568    52428799    15727616    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    48240639     8388608   83  Linux

命令(输入 m 获取帮助):t
分区号 (3-6,默认 6):5
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):t
分区号 (3-6,默认 6):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@node001 ~]# fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c6d6d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

磁盘 /dev/sdb:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb3642d7a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb3            2048    20973567    10485760   8e  Linux LVM
/dev/sdb4        20973568    52428799    15727616    5  Extended
/dev/sdb5        20975616    31461375     5242880   8e  Linux LVM
/dev/sdb6        31463424    48240639     8388608   8e  Linux LVM

磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
 

三 PV管理工具

        物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。

3 .1 创建 PV


[root@node001 ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.

3.2 显示 PV


[root@node001 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <19.00g     0 
  /dev/sdb3         lvm2 ---   10.00g 10.00g
[root@node001 ~]# pvdisplay /dev/sdb3
  "/dev/sdb3" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb3
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               oxXU2m-nbTr-UEhX-Fubg-EUdC-HYZP-FrgC5U
   
[root@node001 ~]# 

四  VG管理工具

4.1 创建VG

[root@node001 ~]# vgcreate myvg /dev/sdb3
  Volume group "myvg" successfully created


4.2 查看VG

[root@node001 ~]# vgdisplay myvg
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               <10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               XKCZWn-79dk-Sgrh-cOcS-uMb3-oFMP-ZA7mdA
 

4.3 此时查看pv

[root@node001 ~]# pvdisplay /dev/sdb3
  --- Physical volume ---
  PV Name               /dev/sdb3
  VG Name               myvg
  PV Size               10.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2559
  Free PE               2559
  Allocated PE          0
  PV UUID               oxXU2m-nbTr-UEhX-Fubg-EUdC-HYZP-FrgC5U
 

4.4 扩展VG

扩展VG需要有可有的PV ,我们sdb5 还没有用,可以基于sdb5来扩展VG

4.4.1 创建PV

 sdb5

[root@node001 ~]# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created.
 

4.4.2 扩展VG

[root@node001 ~]# vgextend myvg /dev/sdb5
  Volume group "myvg" successfully extended

4.4.3 查看扩展的VG

4.5 缩减VG 

缩减VG之前xu'yao

4.5  移除PV

[root@node001 ~]# pvmove /dev/sdb5
  No data to move for myvg.

4.6 缩减VG


[root@node001 ~]# vgreduce myvg /dev/sdb5
  Removed "/dev/sdb5" from volume group "myvg"


[root@node001 ~]# vgdisplay myvg 
  --- Volume group ---
  VG Name               myvg
  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               <10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               XKCZWn-79dk-Sgrh-cOcS-uMb3-oFMP-ZA7mdA
 

五 LV的管理、创建逻辑卷

[root@node001 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
[root@node001 ~]# lvdispaly
bash: lvdispaly: 未找到命令...
相似命令是: 'lvdisplay'
[root@node001 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                pE38Q2-oteh-iMd0-Szmy-JTse-GspE-Pg4Ejc
  LV Write Access        read/write
  LV Creation host, time node001.bowen.com, 2021-05-20 17:16:08 +0800
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                I9KDJD-ftU8-z2Bp-6Zh0-XVwD-mvb7-w6lRk4
  LV Write Access        read/write
  LV Creation host, time node001.bowen.com, 2021-05-20 17:16:08 +0800
  LV Status              available
  # open                 1
  LV Size                <17.00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
 

5.1 创建逻辑卷

lvcreate 

-L  大小 

-n  名字

VG 卷组

[root@node001 ~]# lvcreate -L 2G -n mylv  myvg
Logical volume "mylv" created.


[root@node001 ~]# ls /dev/mapper/
centos-root  centos-swap  control  myvg-mylv

可以看到myvg-mylv这个逻辑卷就出现了,我们可以把它当成一个设备使用。

5.2 格式化

[root@node001 ~]# mke2fs -t ext4 -b 1024 -L MYLV   /dev/myvg/mylv 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYLV
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=35651584
256 block groups
8192 blocks per group, 8192 fragments per group
512 inodes per group
Superblock backups stored on blocks: 
    8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
    1024001, 1990657

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

[root@node001 ~]# 

5.3 挂载使用

[root@node001 ~]# mkdir /backup
[root@node001 ~]# mount /dev/myvg/mylv /backup/
[root@node001 ~]# ls -l /backup/
总用量 12
drwx------. 2 root root 12288 7月  13 17:09 lost+found
[root@node001 ~]# mount
sysfs on /sys type sysfs

5.3.1  copy文件

[root@node001 ~]# cd /backup/
[root@node001 backup]# cp /etc/issue /backup/
[root@node001 backup]# cp /etc/grub.conf /backup/
cp: 无法获取"/etc/grub.conf" 的文件状态(stat): 没有那个文件或目录
[root@node001 backup]# cp /etc/grub.d/ /backup/
cp: 略过目录"/etc/grub.d/"
[root@node001 backup]# cd /backup/
[root@node001 backup]# ll
总用量 13
-rw-r--r--. 1 root root    23 7月  13 17:13 issue
drwx------. 2 root root 12288 7月  13 17:09 lost+found
 

 5.4 扩展逻辑卷、扩展逻辑编辑

 5.4.1  扩展逻辑卷

lvextend  -L  扩展到多少

[root@node001 backup]# lvextend -L 5G /dev/myvg/mylv 
  Size of logical volume myvg/mylv changed from 2.00 GiB (512 extents) to 5.00 GiB (1280 extents).
  Logical volume myvg/mylv successfully resized.

 5.4.2  查看 扩展后的逻辑卷

        可以看到扩展后 /dev/mapper/myvg-mylv  还是  2.0G,这是因为逻辑卷扩展后,但是文件系统并没有扩展,这里显示的是文件系统所管理的大小
[root@node001 backup]# df -lh
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  8.6G  8.5G   51% /
devtmpfs                 975M     0  975M    0% /dev
tmpfs                    992M     0  992M    0% /dev/shm
tmpfs                    992M   11M  982M    2% /run
tmpfs                    992M     0  992M    0% /sys/fs/cgroup
/dev/sda1               1014M  157M  858M   16% /boot
tmpfs                    199M   12K  199M    1% /run/user/42
tmpfs                    199M     0  199M    0% /run/user/0
/dev/mapper/myvg-mylv    2.0G  3.1M  1.9G    1% /backup
[root@node001 backup]# 

 重新挂载:

 

 现实还是2G,主要原因是LV扩大了,由于我们在逻辑卷上装了文件系统,但是文件系统所能管理的还是2G  所以我们需要将文件系统管理到整个磁盘。

5.4.3 修改逻辑边界

[root@node001 backup]# resize2fs /dev/myvg/mylv 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /backup; on-line resizing required
old_desc_blocks = 16, new_desc_blocks = 40
The filesystem on /dev/myvg/mylv is now 5242880 blocks long.

[root@node001 backup]# 

5.4.5 查看修改逻辑编辑的逻辑卷大小

[root@node001 backup]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  8.5G  8.5G   51% /
devtmpfs                 975M     0  975M    0% /dev
tmpfs                    992M     0  992M    0% /dev/shm
tmpfs                    992M   11M  982M    2% /run
tmpfs                    992M     0  992M    0% /sys/fs/cgroup
/dev/sda1               1014M  157M  858M   16% /boot
tmpfs                    199M   12K  199M    1% /run/user/42
tmpfs                    199M     0  199M    0% /run/user/0
/dev/mapper/myvg-mylv    4.9G  3.2M  4.7G    1% /backup
[root@node001 backup]# 

5.5 缩减逻辑卷

 缩减逻辑卷需要先缩减文件系统大小,我们称之为逻辑文件大小,然后再去缩减物理大小

先卸载文件系统:

5.5.1.卸载     

    umount  /dev/VG_NAME/LV_NAME

5.5.2. 强制监测 

  e2fsck -f   /dev/VG_NAME/LV_NAME

5.5.3 缩减文件系统逻辑边界

        指定缩减到多大 resize2fs   /dev/VG_NAME/LV_NAME  # 大小

5.5.4 缩减逻辑卷

lvreduce  -L [-]  # 大小    /dev/VG_NAME/LV_NAME

5.5.5 挂载并使用

  mount    /dev/VG_NAME/LV_NAME  /backup

[root@node001 ~]# umount /dev/myvg/mylv 
[root@node001 ~]# e2fsck -f /dev/myvg/mylv 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
MYLV: 12/327680 files (0.0% non-contiguous), 119806/5242880 blocks
[root@node001 ~]# resize2fs /dev/myvg/mylv 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 3145728 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 3145728 blocks long.

[root@node001 ~]# lvreduce -L 3G /dev/myvg/mylv 
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv? [y/n]: y
  Size of logical volume myvg/mylv changed from 5.00 GiB (1280 extents) to 3.00 GiB (768 extents).
  Logical volume myvg/mylv successfully resized.
[root@node001 ~]# mount /dev/myvg/mylv /backup/

[root@node001 backup]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  8.5G  8.5G   51% /
devtmpfs                 975M     0  975M    0% /dev
tmpfs                    992M     0  992M    0% /dev/shm
tmpfs                    992M   11M  982M    2% /run
tmpfs                    992M     0  992M    0% /sys/fs/cgroup
/dev/sda1               1014M  157M  858M   16% /boot
tmpfs                    199M   12K  199M    1% /run/user/42
tmpfs                    199M     0  199M    0% /run/user/0
/dev/mapper/myvg-mylv    3.0G  3.2M  2.8G    1% /backup

六 快照:snapshot

lvcreate  

-L :指定大小

-p :指定权限 -r 读写

-s :表示是一个快照

-n:指明快照卷名字   原卷名字

创建快照:

[root@node001 backup]# lvcreate -s -L 512M -n mylv-snap -p r /dev/myvg/mylv

  Logical volume "mylv-snap" created.
 

挂载:

[root@node001 backup]# mount /dev/myvg/mylv-snap /mnt

卸载于删除逻辑卷

[root@node001 /]# umount /mnt/
[root@node001 /]# lvremove /dev/myvg/mylv-snap 
 

卸载挂载 

[root@node001 /]# umount /backup/

删除lv 

 [root@node001 /]# lvremove /dev/myvg/mylv 

删除VG 

 [root@node001 ~]# vgremove myvg 
  Volume group "myvg" successfully removed
[root@node001 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0 

 

 删除pv 

[root@node001 ~]# pvremove /dev/sdb3
  Labels on physical volume "/dev/sdb3" successfully wiped.
[root@node001 ~]# pvremove /dev/sdb5
  Labels on physical volume "/dev/sdb5" successfully wiped.
[root@node001 ~]# 

 七:虚拟机挂载U盘

2. 挂载U盘镜像

插入U盘--会提示识别到虚拟机还是识别到主机--点击识别到虚拟机--->通过fdisk -l 根据空间大小区分u盘

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值