构建软RAID磁盘阵列

构建软RAID磁盘阵列

一、前置知识

RAID基础

RAID 是冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。它是把多个磁盘组成一个阵列,当作单一磁盘使用。它将数据以分段(striping)的方式分散存储在不同的磁盘中,通过多个磁盘的同 时读写,来减少数据的存取时间,并且可以利用不同的技术实现数据的冗余,即使有一个磁盘损坏,也可以从其他的磁盘中恢复所有的数据。简单地说,其好处就 是:安全性高、速度快、数据容量大。

磁盘阵列根据其使用的技术不同而划分了等级,称为RAID level,目前公认的标准是RAID 0~RAID 5。其中的level并不代表技术的高低,RAID 5并不高于RAID 4 ,RAID 0并不低于RAID 2 ,至于选择哪一种RAID需视用户的需求而定。下面分别对常用的RAID 0、RAID 1、RAID 5进行简单的介绍。

1、RAID 0
特点:它是将多个磁盘并列起来,成为一个大硬盘。在存取数据时,将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。在所有的级别中,RAID 0的速度是最快的。但没有数据冗余,阵列中任何一个磁盘坏掉,意味着所有数据丢失。

磁盘利用数:n(假设有n个磁盘)。
配置条件:最低两块磁盘,且分区大小尽量相同。
应用领域:对高磁盘容量及高速磁盘存取有特殊需求,而又不计较其高故障率的工作。当然,如果你正在使用集群,RAID 0 无疑是提高磁盘I/O性能的最好方法,因为在这种情况下,你就不用担心冗余的问题了。
2、RAID 1
特点:使用磁盘镜像(disk mirroring)的技术,在一个磁盘上存放数据的同时也在另一个磁盘上写一样的数据。因为有了备份磁盘,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。尽管其写入数据的速度比较慢,但因其数据是以分段的方式作储存,因而在读取时,它几乎和RAID 0有同样的性能。

磁盘利用数:n/2。
配置条件:最低两块磁盘,且分区大小尽量相同。
应用领域:数据库、金融系统等一些对数据有着高可靠性要求的领域。再者就是系统中写数据量比较少,而读数据量又比较多的情况下可以采用这一模式。
3、RAID 5
特点:以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个磁盘上。这样,任何一个磁盘损坏,都可以根据其他磁盘上的校验位来重建损坏的数据。并行读写数据,性能也很高。

磁盘利用数:n-1。
配置条件:最低三块硬盘,且分区大小尽量相同。
应用领域:适合于事务处理环境,例如民航售票处、销售系统等。

二、上机实验

1、实验环境
公司视频监控服务器使用一段时间后,存储视频的分区空间不足,公司又购置了4块SCSI硬盘,增大存储空间的同时希望提高磁盘存储的性能和可靠性
2、需求描述
为Linux服务器添加4块SCSI硬盘
使用mdadm软件包,构建RAID5磁盘阵列

三、实现步骤

1. 安装mdadm
2. 准备用于RAID阵列的分区
	为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为
/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1
	将其类型ID更改为“fd”,对应为“Linux raid autodetect”,表示支持用于RAID磁盘阵列
3. 创建RAID设备并建立文件系统
4. 挂载并使用文件系统
1、安装mdadm

查看mdadm工具是否安装

[root@192 ~]# rpm -qa | grep mdadm
mdadm-4.1-rc1_2.el7.x86_64
2、准备用于RAID阵列的分区
(1)查看磁盘分区
[root@192 ~]# fdisk -l

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

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

磁盘 /dev/sdb:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdc:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sde:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdd:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /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 字节
(2)给磁盘进行分区

执行分区命令:

# fdisk /dev/磁盘标识
# /dev/sdc  /dev/sdd  /dev/sde  以此类推
fdisk /dev/sdb

按m键显示命令列表,如下所示:

命令(输入 m 获取帮助): m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

所有操作步骤如下所示:

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

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

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

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

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

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

磁盘 /dev/sdb:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x56e95307

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   fd  Linux raid autodetect

命令(输入 m 获取帮助):q
[root@192 ~]#
(3)查看磁盘
[root@192 ~]# fdisk -l | grep '/dev'
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
磁盘 /dev/sdb:3221 MB, 3221225472 字节,6291456 个扇区
磁盘 /dev/sdd:3221 MB, 3221225472 字节,6291456 个扇区
磁盘 /dev/sde:3221 MB, 3221225472 字节,6291456 个扇区
磁盘 /dev/sdc:3221 MB, 3221225472 字节,6291456 个扇区
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
3、创建RAID设备并格式化
(1)参数说明
大写C 相当于 create
v 把创建位置信息显示出来
/dev/md0 创建RAID5的名称
-a  后面跟yes  代表如果有什么设备文件存在的话自动创建
-n4   小写n 创建RAID用了几块硬盘  
-l  RAID的级别  5
/dev/sdb1  /dev/sdc1  /dev/sdd1   /dev/sde1  四块磁盘分区
(2)创建RAID设备
[root@192 ~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[bcde]
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 3142656K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
(3)查看 RAID5 是否存在
1)普通方法
[root@192 ~]# ll /dev/md0
brw-rw----. 1 root disk 9, 0 3月  31 10:38 /dev/md0
2)查看proc文件系统
[root@192 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde[4] sdd[2] sdc[1] sdb[0]
      9427968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
(4)创建RAID设备并建立文件系统
[root@192 ~]# mkfs -t ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=384 blocks
589824 inodes, 2356992 blocks
117849 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
72 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
4、挂载并使用文件系统
(1)临时挂载
[root@192 ~]# mkdir /hello
[root@192 ~]# mount /dev/md0 /hello/
[root@192 ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  6.8G   11G   40% /
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  166M  849M   17% /boot
tmpfs                   tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                   tmpfs      98M   28K   98M    1% /run/user/0
/dev/md0                ext4      8.8G   37M  8.3G    1% /hello
(2)永久挂载
1)编辑/etc/fstab文件
[root@192 ~]# cp /etc/fstab /etc/fstab.bak
[root@192 ~]# vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Feb  2 00:01:20 2020
#
# 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/centos-root /                       xfs     defaults        0 0
UUID=9db7f33b-ec07-4aa9-97f1-1561f7bee865 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
# 添加RAID5设备信息
/dev/md0        /hello  ext4    defaults        0 0
2)进行查验
[root@192 ~]# umount /hello
[root@192 ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  6.8G   11G   40% /
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  166M  849M   17% /boot
tmpfs                   tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                   tmpfs      98M   28K   98M    1% /run/user/0
[root@192 ~]# mount -a
[root@192 ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  6.8G   11G   40% /
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  166M  849M   17% /boot
tmpfs                   tmpfs      98M  4.0K   98M    1% /run/user/42
tmpfs                   tmpfs      98M   28K   98M    1% /run/user/0
/dev/md0                ext4      8.8G   37M  8.3G    1% /hello
(3)扩展知识

/etc/fstab文件的作用

磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。

系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。

/etc/fstab文件说明

该文件共有六列,各列作用如下所示:

第一列:Device
	磁盘设备文件或者该设备的Label或者UUID
	
第二列:Mount point
	设备的挂载点,就是你要挂载到哪个目录下。
	
第三列:filesystem
	磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等
	
第四列:parameters
	defaults具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
	
第五列:能否被dump备份命令作用
	dump是一个用来作为备份的命令。通常这个参数的值为0或者1
	0:代表不要做dump备份
	1:代表要每天进行dump的操作
    2:代表不定日期的进行dump操作
    
第六列:是否检验扇区
	开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
	0:不要检验
	1:最早检验(一般根目录会选择)
	2:1级别检验完成之后进行检验
5、RAID阵列的管理及设备恢复
1. 扫描或查看磁盘阵列信息
2. 启动/停止RAID阵列
3. 设备恢复操作
	(1)模拟阵列设备故障
	(2)更换故障设备,并恢复数据

参数说明

Mdadm –V 执行信息怎么样显示出来
s是扫描 对linux系统下面冗余阵列啊  阵列怎么样显示出来
(1)扫描或查看磁盘阵列信息
方法一
[root@192 ~]# mdadm -vDs
ARRAY /dev/md0 level=raid5 num-devices=4 metadata=1.2 name=192.168.79.152:0 UUID=c387dc63:62e7aeb5:b561a5bf:d781237f
   devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde
方法二
[root@192 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Mar 31 10:38:40 2020
        Raid Level : raid5
        Array Size : 9427968 (8.99 GiB 9.65 GB)
     Used Dev Size : 3142656 (3.00 GiB 3.22 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Mar 31 10:50:05 2020
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : 192.168.79.152:0  (local to host 192.168.79.152)
              UUID : c387dc63:62e7aeb5:b561a5bf:d781237f
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      active sync   /dev/sde
方法三
[root@192 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde[4] sdd[2] sdc[1] sdb[0]
      9427968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>

# 说明:
# sdd[2]:此设备在RAID中的次序。
# [4/4]:RAID使用3个设备,当前有3个设备正常运行。当某一个设备出错时将会显示[3/2]。
# [UUUU]:RAID中所有磁盘运转正常。如果出错则显示[_UUU],则说明RAID中第一磁盘fail。
(2)启动/停止RAID阵列
1)mdadm配置文件

mdadm的缺省配置文件为/etc/mdadm.conf。对于阵列而言不是必须的,主要是为了方便阵列的日常管理。
使用配置文件后,我们每次启动RAID时,就不需要再次输入建立RAID时的一大堆的参数。

mdadm.conf文件中要包含两行:

第一行是以DEVICE开头的行,它指明在阵列中的设备列表。
第二行是以ARRAY开头的行,它详细地说明了阵列的名称、模式、阵列中活动设备的数目以及设备的UUID号。

一般会有如下格式:

#cat /etc/mdadm.conf
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=b5e3276f:ab97e843:e601b1a4:46720384

生成方法:

echo 'DEVICE /dev/sd[bcde]' > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf

或

echo 'DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde' > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
2)配置mdadm开机自启动

使用配置文件后,RAID设备在重启后也可以正常的自动加载,因为系统在开机启动时会自动加载RAID。

3)停止与开启RAID设备

停止:

[root@192 ~]# umount /dev/md0
[root@192 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0

# -S停止 –A 激活

开启:

# 使用配置文件时:
[root@192 ~]# mdadm -As /dev/md0
mdadm: /dev/md0 has been started with 4 drives.

# 没有使用配置文件时:
[root@192 ~]# mdadm -A /dev/md0 /dev/sd[bcde]
mdadm: /dev/md0 has been started with 4 drives.
(3)设备恢复操作
1)模拟阵列设备故障

将一个磁盘标记为faulty,模拟硬盘坏损

[root@192 ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0

查看完成坏损设备后的RAID状态

# 方法一:
[root@192 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Mar 31 10:38:40 2020
        Raid Level : raid5
        Array Size : 9427968 (8.99 GiB 9.65 GB)
     Used Dev Size : 3142656 (3.00 GiB 3.22 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Mar 31 15:43:15 2020
             State : clean, degraded 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : 192.168.79.152:0
              UUID : c387dc63:62e7aeb5:b561a5bf:d781237f
            Events : 20

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      active sync   /dev/sde

       0       8       16        -      faulty   /dev/sdb
       
#方法二:
[root@192 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb[0](F) sde[4] sdd[2] sdc[1]
      9427968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
      
unused devices: <none>
2)更换故障设备,并恢复数据

移除坏损设备

[root@192 ~]# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0

添加新的设备

[root@192 ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb

查看最终状态

# 方法一:
[root@192 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Mar 31 10:38:40 2020
        Raid Level : raid5
        Array Size : 9427968 (8.99 GiB 9.65 GB)
     Used Dev Size : 3142656 (3.00 GiB 3.22 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Mar 31 15:49:25 2020
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : 192.168.79.152:0
              UUID : c387dc63:62e7aeb5:b561a5bf:d781237f
            Events : 40

    Number   Major   Minor   RaidDevice State
       5       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      active sync   /dev/sde

# 方法二:
[root@192 ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@192 ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb[5] sde[4] sdd[2] sdc[1]
      9427968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
      [=======>.............]  recovery = 39.9% (1254656/3142656) finish=0.1min speed=179236K/sec
      
unused devices: <none>
[root@192 ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb[5] sde[4] sdd[2] sdc[1]
      9427968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值