块存储-ISCSI

目录

一、Iscsi概述

二、存储设备分类

三、管理命令

1.管理RAID--mdadm

a.创建RAID

b.查看RAID

c.加入已有RAID阵列

d.列出问题设备

e.移除磁盘

f.加入磁盘

g.停止RAID

2.管理iSCSI target--tgtadm

a.创建iscsi target 

b.显示所有iSCSI target

c.向iSCSI target添加LUN

d.配置访问控制

e.删除iSCSI target

3.管理iSCSI存储设备--iscsiadm

a.发现iSCSI目标

b.登录iSCSI设备

c.显示已登录的iSCSI会话

d.从iSCSI设备登出

e.永久删除iSCSI节点信息

四、构建网络存储

1.需求

a.概述

b.协议

c.部署步骤

d.客户端连接并分区挂载后如何扩容

e.普通分区后lvm分区管理的报错问题

1.环境准备

2.创建lvm

3.创建raid

4.创建IQN标签(存储资源)

a.安装scsi-target-utils,并开启服务

b.创建标签

5.绑定存储资源

a.把标签赋给存储设备

b.设置权限

6.客户端使用

a.安装iscsi-initiator-utils

b.查看服务器允许挂载的存储节点

c.挂到客户端,进行使用。

d.安装lsscsi来验证客户端出现的/dev/sdb是否是从服务器端挂载过来的。

e.卸载和挂载命令

f.分区、格式化、挂载

五、RHCS

1.概述

2.RHCS的主要特点

3.RHCS的组成

4.RHCS的集群架构

5.RHCS的关键技术

6.实验

a.环境准备

b.解析主机名称(注意别名)

c.实现免密码验证

d.时间服务器配置

e.Node节点的配置

f.cman与rgmanager集群安装与配置


一、Iscsi概述

       iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

iSCSIInternet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface) Internet 小型计算机系统接口(iSCSI)是一种基于 TCP/IP 的协议,用来建立和管理 IP 存储设备、主机和客  户机等之间的相互连接,并创建存储区域网络(SAN)。

SAN网络Storage Area Network 存储区域网络,多采用高速光纤通道,对速率、冗余性要求高。使用iscsi存储协议,块级传输。

NAS网络Network Attachment Storage,网络附件存储,采用普通以太网,对速率、冗余无特别要求,使用NFS、CIFS共享协议,文件级传输。

SAN和NAS的区别

    1. SAN一般特指存储网络的构建方式,NAS一般特指产品。

    2. SAN有单独的存储网络,NAS使用现有网络

    家庭网络存储设备:FREENAS,用的是FREEBSD系统

二、存储设备分类

  • 初级存储设备:单存储设备(分区、格式化、挂载、逻辑卷管理、磁盘阵列、磁盘配额)

  • 中级存储设备:网络文件系统(samba/cifs nfs)

  • 高级存储设备:块存储、MFS

网络文件系统 和 块存储的区别:

网络文件系统:将现有已创建好的存储空间(已分区格式化挂载的)进行共享,使用专门的网络文件系统协          议进行共享。客户端不支持自定义!

块存储:将本地的底层存储空间(磁盘分区、逻辑卷、磁盘阵列,但都不格式化)直接共享,允许客户端自     我进行分区格式化挂载使用!!!

三、管理命令

1.管理RAID--mdadm

  mdadm命令是Linux系统下用于管理软件RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)的工具。它提供了丰富的参数来支持RAID阵列的创建、管理、监控和维护

命令格式:
    mdadm [mode] [options] <device> [<device>...]
        #[mode]指定了mdadm要执行的操作类型(如创建、管理、监控等)
        #[options]是可选的参数
        #<device>是RAID设备或成员设备的名称

参数:
    -C, --create:创建一个新的RAID阵列
    -D, --detail:显示RAID设备的详细信息
    -A, --assemble:加入一个以前定义的RAID阵列
    -l, --level:指定RAID的级别(如0, 1, 4, 5, 6等)
    -n, --raid-devices:指定RAID中活动设备的数目
    -x, --spare-devices:指定初始RAID设备的备用成员的数量
    -f, --fail:把RAID成员列为有问题,以便移除该成员
    -r, --remove:把RAID成员移出RAID设备
    -a, --add:向RAID设备中添加一个成员
    -S, --stop:停用RAID设备,释放所有资源
#安装mdadm命令
yum -y install mdadm

a.创建RAID

#创建一个新的RAID 5阵列/dev/md0,使用/dev/sdb、/dev/sdc、/dev/sdd作为数据盘,/dev/sde作为热备盘。
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

b.查看RAID

#显示/dev/md0这个RAID设备的详细信息,包括RAID级别、设备大小、活动设备数等
mdadm -D /dev/md0

c.加入已有RAID阵列

#将/dev/sdb、/dev/sdc、/dev/sdd重新组装成之前定义的RAID阵列/dev/md0
mdadm -A /dev/md0 /dev/sdb /dev/sdc /dev/sdd

d.列出问题设备

#将/dev/sdb标记为/dev/md0 RAID阵列中的问题设备
mdadm /dev/md0 -f /dev/sdb

e.移除磁盘

#将/dev/sdb从/dev/md0 RAID阵列中移除
mdadm /dev/md0 -r /dev/sdb

f.加入磁盘

#将/dev/sdb添加到/dev/md0 RAID阵列中
mdadm /dev/md0 -a /dev/sdb

g.停止RAID

#停止/dev/md0这个RAID阵列,并释放相关资源
mdadm -S /dev/md0

2.管理iSCSI target--tgtadm

       tgtadm是一个用于配置和管理iSCSI target的工具,它允许用户创建、删除、更新iSCSI target以及与之相关的逻辑单元(LUN)等。

命令格式:
    tgtadm --lld [driver] --op [operation] --mode [mode] [OPTION]

参数:
    #--lld [driver]:指定底层驱动,对于iSCSI target来说,通常是iscsi
    #--op [operation]:指定要执行的操作,如new(创建)、show(显示)、delete(删除)等
    #--mode [mode]:指定操作的模式,如target(目标)、logicalunit(逻辑单元)、account(账户)等
    #[OPTION]:根据操作的不同,可能需要提供额外的选项,如目标名称、LUN编号、后端存储路径等
#安装scsi-target-utils
yum -y install scsi-target-utils

#启动服务
systemctl start tgtd && systemctl enable tgtd

a.创建iscsi target 

#创建一个新的iSCSI target,其ID为1,名称为iqn.2023-07.example.com:target1
tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2023-07.example.com:target1

b.显示所有iSCSI target

#列出所有已配置的iSCSI target的信息
tgtadm --lld iscsi --op show --mode target

c.向iSCSI target添加LUN

#向ID为1的iSCSI target添加了一个新的LUN,编号为1,其后端存储对应的块设备路径为/dev/sdb
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/sdb

d.配置访问控制

#配置ID为1的iSCSI target的访问控制列表,允许来自192.168.1.0/24网段的iSCSI initiator访问该target
tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address 192.168.1.0/24

e.删除iSCSI target

#删除ID为1的iSCSI target及其所有相关的配置
tgtadm --lld iscsi --op delete --mode target --tid 1

3.管理iSCSI存储设备--iscsiadm

       iscsiadm命令是一个用于管理iSCSI(Internet Small Computer System Interface)存储设备的命令行工具,它提供了丰富的参数和选项来执行各种操作,如发现iSCSI目标、登录和登出iSCSI设备、显示和管理iSCSI会话等。

命令格式:
    iscsiadm [选项]

参数:
    #-m 或 --mode,指定iscsiadm命令的操作模式。常见的模式包括:
        #discovery:用于发现iSCSI目标。
        #node:用于管理iSCSI节点(即iSCSI目标)。
        #session:用于显示和管理iSCSI会话。
    #-t 或 --type,(在某些discovery模式下使用)指定发现操作的类型,如sendtargets
    #-p,指定iSCSI目标的IP地址和端口(可选)。格式通常为IP地址:端口,其中端口默认为3260(iSCSI的标准端口)。
    #-T 或 --targetname,指定要登录或管理的iSCSI目标的名称(IQN)。
    #-l 或 --login,用于登录到指定的iSCSI目标。
    #-u 或 --logout,用于从指定的iSCSI目标登出。
    #--op,指定对节点或会话执行的操作,如show(显示信息)、delete(删除信息)等。
    #--portal,(在某些情况下使用)指定iSCSI门户(portal)的地址。
#安装iscsiadm命令
yum -y install iscsi-initiator-utils

a.发现iSCSI目标

#向IP地址为192.168.1.100的iSCSI目标发送发现请求,以列出该目标上可用的iSCSI目标名称(IQN)。
iscsiadm -m discovery -t sendtargets -p 192.168.1.100

b.登录iSCSI设备

#登录到IQN为iqn.2023-07.example.com:target1,位于IP地址为192.168.1.100的iSCSI目标
iscsiadm -m node -T iqn.2023-07.example.com:target1 -p 192.168.1.100 --login

c.显示已登录的iSCSI会话

#列出当前系统上所有已登录的iSCSI会话的信息
iscsiadm -m session

d.从iSCSI设备登出

#从IQN为iqn.2023-07.example.com:target1,位于IP地址为192.168.1.100的iSCSI目标登出
iscsiadm -m node -T iqn.2023-07.example.com:target1 -p 192.168.1.100 --logout

e.永久删除iSCSI节点信息

#永久删除与指定IQN和IP地址相关联的iSCSI节点信息
iscsiadm -m node -T iqn.2023-07.example.com:target1 -p 192.168.1.100 -o delete

四、构建网络存储

1.需求

a.概述

    客户端所使用的的块存储共享支持动态扩容,并且具有数据冗余和加速功能:

        1.在服务器端使用raid进行底层存储块的构建,可以选择用10或5,实现加速和冗余

        2.再在服务器端将raid磁盘进行逻辑卷创建,物理卷、卷组、逻辑卷,使其支持动态扩容

    客户端:

        3.连接到服务器端后,将服务器的共享连接到本地

        4.再次进行逻辑卷划分,支持客户端动态扩容

b.协议

iscsi协议:

    块存储实验中服务器和客户端之间进行存储空间共享的协议

tgtd服务:属于target软件

    安装此服务后,就可以借助iscsi协议进行共享

共享标签名:

    先创建一个共享标签,将本机 ip 和 port 绑定在这个标签上,还有要进行共享的存储空间也绑定到此标签上。

c.部署步骤

1.  先将要共享的存储空间准备好

    底层raid + 上层 LVM

    LVM仅需要创建逻辑卷即可,不需要格式化

2.  创建共享标签,绑定要共享的存储空间,设置访问控制

    直接修改配置文件完成,重启服务即可生效

    tgtadm 也可以完成上述工作,但是临时设置,重启失效

3.  客户端安装客户端工具

    先探查服务是否对外进行了共享,共享时的IP、PORT、共享标签

    然后使用iscsiadm 连接 共享标签

    连接成功后会将服务器的共享存储空间映射在客户端一份,以一块磁盘的形式存在

    最后管理员可以根据自己的需求对该磁盘进行使用管理(建议使用lvm逻辑卷管理)

d.客户端连接并分区挂载后如何扩容

1.  客户端先卸载、再断开与服务器的iscsi连接

2.  服务器端进行逻辑卷扩容,并进行tgtd服务重启

3.  客户端重启,会完成自动连接

4.  客户端对物理卷进行扩容:pvresize --setphysicalvolumesize 65G /dev/sdb

5.  客户端对逻辑卷和文件系统进行扩容和更新:lvresize -r -L +10G /dev/www_vg/www_lv

e.普通分区后lvm分区管理的报错问题

关于:客户端连接的第一个分区sdb先普通分区后lvm分区管理的报错问题

问题分析:由于客户端连接后先使用gdisk进行了普通分区,并完成了格式化挂载操作,然后又想修改为lvm管理方式,就进行了分区删除操作,但删除分区后仍旧无法进行物理卷转化,分析原因为已有mbr或gpt的分区表相关信息,导致无法使用pvcreate进行物理卷转化

pvcreate /dev/sdb

#报错信息
Device /dev/sdb excluded by a filter.

解决方案:找到Linux中用来清理分区表信息的命令,对磁盘进行分区表信息清除即可。

命令:wipefs -a 磁盘

#-a 清除指定磁盘上所有的分区信息

#执行磁盘分区信息清理
wipefs -a /dev/sdb

/dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 8 bytes were erased at offset 0x97ffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdb: calling ioclt to re-read partition table: Success
#执行过磁盘分区信息清理后,再次进行物理卷的转化成功!
pvcreate /dev/sdb

Physical volume "/dev/sdb" successfully created.

1.环境准备

实验环境:

服务器端添加5块磁盘,在/dev/sdb上划分分区,把全部大小都给它

2.创建lvm

格式化

3.创建raid

mdadm -Cv /dev/md0 -a yes -n 3 -l 5 -x 1 /dev/sdc /dev/sdd /dev/sde /dev/sdf

    #-C:创建一个新的 RAID 阵列
    #-v:在创建过程中显示详细输出
    #/dev/md0:是创建的 RAID 设备的名称
    #-a yes:自动创建所需的设备文件(如果尚未存在)
    #-n 3:指定用于数据存储的磁盘数量为 3
    #-l 5:设置 RAID 级别为 5
    #-x 1:指定热备盘的数量为 1

#查看创建的raid
mdadm -D /dev/md0

4.创建IQN标签(存储资源)

        创建iscsi对象(target):软件包—scsi-target-utils,使用tgtadm工具创建target。

a.安装scsi-target-utils,并开启服务

yum -y install scsi-target-utils

b.创建标签

tgtadm -L iscsi -o new -m target -t 1 -T iqn.2017-3.com.xdl.www:raid

tgtadm -L iscsi -o show -m target

5.绑定存储资源

a.把标签赋给存储设备

#把标签赋给存储设备
tgtadm -L iscsi -o new -m lu -t 1 -l 1 -b /dev/vg0/lv0

#-l 指定LUN的ID号,如“-l 1”
#-b 指定块设备位置,如“-b /dev/md0”

tgtadm -L iscsi -o new -m lu -t 2 -l 1 -b /dev/vg0/lv0

#再次查看存储资源
tgtadm -L iscsi -o show -m target

b.设置权限

#资源池1和2中的数据只允许10访问
tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.153.10

tgtadm -L iscsi -o bind -m target -t 2 -I 192.168.153.10
#-I 指定客户机地址,如“-I  192.168.153.10”

再次查看

保存到配置文件(使之永久生效)

修改配置文件vim /etc/tgt/targets.conf

启动并设置为开机自启

6.客户端使用

连接iscsi对象,软件包:iscsi-initiator-utils,使用iscsiadm工具查找,连接target

a.安装iscsi-initiator-utils

b.查看服务器允许挂载的存储节点

iscsiadm -m discovery -t sendtargets -p 192.168.153.12

c.挂到客户端,进行使用。

iscsiadm -m node -T iqn.2017-3.com.xdl.www:lvm --login

d.安装lsscsi来验证客户端出现的/dev/sdb是否是从服务器端挂载过来的。

e.卸载和挂载命令

f.分区、格式化、挂载

mkfs.ext4 /dev/sdb1

vim /etc/fstab
/dev/sdb1    /mnt    ext4    defaults,_netdev    0    0

五、RHCS

1.概述

       RHCS是Red Hat Cluster Suite的缩写,即红帽子集群套件。它是一个功能完备的集群应用解决方案,旨在提供高可用性、高可靠性、负载均衡和存储共享等特性,同时保持经济廉价。RHCS将集群系统中的三大集群架构(高可用性集群、负载均衡集群、存储集群)融合一体,为web应用、数据库应用等提供安全、稳定的运行环境

2.RHCS的主要特点

  1. 高可用性:RHCS通过其集群管理功能,确保在集群中的某个节点出现故障时,服务能够自动转移到其他健康节点上,从而保持服务的持续可用性。

  2. 负载均衡:RHCS支持负载均衡集群,通过分配网络流量到多个节点上,提高应用的响应速度和吞吐量,同时减轻单一节点的负载压力。

  3. 存储共享:RHCS通过GFS(Global File System)等集群文件系统提供存储共享功能,允许多个服务同时读写同一个共享文件系统,从而简化了数据同步和管理的复杂性。

  4. 经济廉价:RHCS作为一个集成化的集群工具集合,提供了全面的集群管理功能,同时保持了较低的成本,使得中小企业也能负担得起高性能的集群解决方案。

3.RHCS的组成

RHCS是一个集群工具的集合,主要包括以下几个部分:

  1. 集群管理工具:如CMAN(Cluster Manager),它是一个分布式集群管理工具,运行在集群的各个节点上,负责集群成员管理、消息和通知等任务。

  2. 集群文件系统:如GFS(Global File System),它允许多个服务同时读写同一个共享文件系统,通过锁管理机制来协调和管理多个服务节点对文件系统的访问。

  3. 存储管理技术:如iSCSI和GNBD(Global Network Block Device),它们提供了在IP网络上传输和共享存储块的技术支持。

  4. 高可用服务管理器:如rgmanager,它负责监督、启动、停止集群的应用、服务和资源,并在必要时进行服务转移。

  5. 集群配置和管理工具:如LUCI(一个基于web的集群配置工具)和conga(一个新的基于网络的集群配置工具),它们提供了图形化界面来简化集群的配置和管理过程。

4.RHCS的集群架构

RHCS集群从整体上分为三大部分:

  1. 负载均衡集群:通过分配网络流量到多个节点上,提高应用的响应速度和吞吐量。

  2. 高可用性集群:确保在集群中的某个节点出现故障时,服务能够自动转移到其他健康节点上,从而保持服务的持续可用性。

  3. 存储集群:通过GFS等集群文件系统提供存储共享功能,允许多个服务同时读写同一个共享文件系统。

5.RHCS的关键技术

  1. DLM(Distributed Lock Manager):一个分布式锁管理器,为集群提供了一个公用的锁运行机制,用于同步访问文件系统元数据和更新数据到LVM卷和卷组。

  2. FENCE设备:用于避免因出现不可预知的情况而造成的“脑裂”现象。当集群中的某个节点出现故障时,FENCE设备可以将该节点从网络中隔离或重启,以确保集群资源的完整性和一致性。

6.实验

a.环境准备

Centos 6 环境下做此实验

一台 target(添加2个硬盘)

三台 node

解析主机名称(搭建dns或写hosts文件)

配置免密码验证(3个节点和target之间)

搭建时间服务器(能够实现时间同步)

192.168.79.76     target.kernel.com      target

192.168.79.77     node1.kernel.com       node1

192.168.79.78     node2.kernel.com       node2

192.168.79.79     node3.kernel.com       node3

hosts文件的解析:

192.168.79.76     target.hfxx.com       target

192.168.79.77     node1.hfxx.com        node1

192.168.79.78     node2.hfxx.com        node2

192.168.79.79     node3.hfxx.com        node3

SSH免密登录:

    ssh-keygen -t rsa -b 2048

    ssh-copy-id 域名别名

时间服务器搭建还有同步:

ntp服务,默认已安装,但未配置,未启动

    6-2               ntp服务器端

    6-1/6-3/6-4       ntp客户端,指定6-2服务器端进行时间同步

b.解析主机名称(注意别名)

 切换主机的名字

由于四台主机的hosts文件里的内容是一样的,所以通过第一台传给后三台就可以了。

之后,切换三台主机的名字,断开连接再登录即可实现

c.实现免密码验证

实现服务器端登三个节点免密码。。。

实现三个节点和服务器端免密码。

第一个节点:

第二个节点:

第三个节点:

d.时间服务器配置

ntp 软件包默认是安装的,直接来修改配置文件。

让第一台当做时间服务器,来配置。vim /etc/ntp.conf

 客户端的配置

手动刷新进行同步。

开启服务

注:同样的操作在其他两台上进行操作,直接把配置文件传给其他两台、刷新同步,并开启服务

scp /etc/ntp.conf node3:/etc/

scp /etc/ntp.conf target:/etc/

#传完文件后,分别去三台机器上重启服务,并开启开机自启

e.Node节点的配置

跳板模式配置           vim /root/.bashrc      #别名配置文件

然后找时间服务器进行时间同步(指向时间服务武器的IP

安装服务器scsi-target-utils

#创建物理卷
pvcreate /dev/sdb

#创建卷组
vgcreate data_vg /dev/sdb

#创建逻辑卷
lvcreate -L +10G -n data_lv data_vg

配置文件/etc/tgt/targets.conf

服务器端把磁盘/dev/sdb共享出去,如果客户端要想使用,需要提供用户名和密码,并且网段要在这个区域内。

#查看共享资源
tgtadm -L iscsi -o show -m target

知识点:

    fdisk -l命令查看的磁盘存储空间,与实际的磁盘存储空间不一致

原因:

    fdisk -l命令和df -h 等命令,存储空间单位的计算单位大小不一致导致。

例如:

    U盘生产厂商,按1G=1000MB计算,计算机实际识别1G=1024MB.

配置客户端

在三台客户端安装iscsi-initiator-utils,使用那个‘跳板’安装

修改客户端配置文件/etc/iscsi/initiatorname.iscsi,更改客户端的名称 (主配置文件里的标签信息)

修改配置文件/etc/iscsi/iscsid.conf,填写认证信息

接下来在节点1上的操作在2,3上都进行一遍

 用跳板机看3个节点上存储服务器的共享存储,并挂载到节点机上

#启动iscsi服务,并且能看到服务器的共享信息
iscsiadm -m discovery -t sendtargets -p target

#连接服务器的共享
iscsiadm -m node -T iqn.2022-08.com.hfxx:lvm2 --login

#可以看到3个节点机上会多出一个磁盘。
a ssh node$b ‘hostname;lsblk|grep sdb’;done

f.cman与rgmanager集群安装与配置

在各节点上安装cman  rgmanager

#安装完成后,产生ccs_tool命令,man ccs_tool可以看到ccs_tool命令的信息

在节点1上构建集群

ccs_tool create testcluster
ccs_tool addfence meatware fence_manual
ccs_tool lsfence

ccs_tool addnode -n 1 -f meatware node1.hfxx.com

同步配置文件到各节点

由于之前的修改都被保存在/etc/cluster.conf里,所以把这个文件传给2,3节点即可。

启动cman前,关闭NetworkManager ,并设置开机不自启。

启动cman(启动就不使用跳板了,一个一个启)

启动时会报错,执行命令,再启动。

echo "CMAN_QUORUM_TIMEOUT=0" >> /etc/sysconfig/cman

 OK后,再启动节点2,3

clvm安装与配置    (集群版LVM控制工具)

Clvm软件包---lvm2-cluster

安装lvm2-cluster在3个节点上

a ssh node$b 'yum -y install lvm2-cluster';done

启用集群lvm

a ssh node$b 'lvmconf --enable-cluster';done

启用clvm服务

a ssh node$b 'service clvmd start';done

在任意一个节点上创建集群逻辑卷(使用共享存储服务器共享出的那个磁盘)

pvcreate /dev/sdb
vgcreate clustervg /dev/sdb
lvcreate -L +8G -n clusterlv clustervg

在2,3节点上也会看到创建的集群逻辑卷(这就是集群逻辑卷的效果)

gfs2安装与配置

#安装gfs2在各节点上(文件系统类型)
yum -y install gfs2-utils

#格式化为集群文件系统
mkfs.gfs2 -j 3 -p lock_dlm -t testcluster:sharestorage /dev/clustervg/clusterlv

挂载

在节点2,3上进行挂载(格式化就不需要了)

在节点1的/media目录下创建文件,其他2个节点也会看到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值