本文介绍: 在 LVM 中,快照逻辑卷的一种副本用来记录逻辑卷在创建快照时的数据状态。它类似于文件系统的“影子”,通过记录数据状态可以需要恢复逻辑卷到快照所记录的状态。与实际备份不同,快照只是逻辑卷的一个影子,无法防止硬件故障引起的数据丢失。而备份是对实际数据的完整拷贝,即使原始数据丢失,仍然可以通过备份进行数据恢复快照恢复速度更快,因为它仅需要恢复逻辑卷的变化部分,而不是完整的数据相对于备份需要恢复整个数据量,快照只需要恢复差异部分,因此速度更快。在一个大容量的逻辑卷中,快照的消耗通常比较轻量

Linux LVM管理格式化挂载、扩容、快照、恢复、镜像

linux LVM是什么

LVM(Logical Volume Manager)是一种linux磁盘管理工具用于在Linux系统管理磁盘存储卷。通过使用LVM,可以将多个物理磁盘分区组合一个多个逻辑卷,并提供灵活的存储空间管理功能

LVM的优点:

LVM相关概念

以上是LVM的主要组成部分。物理卷被组合成卷组,而卷组中的空间可以根据需要划分为逻辑卷。逻辑卷可以通过挂载文件系统树上的特定目录访问和使用。

LVM的流程

物理磁盘->物理卷(PV)->加入卷组(VG)->卷组中抽取空间制作逻辑卷(LV)->格式化->挂载

页-1

  1. 物理磁盘:首先,您有物理磁盘,可以是硬盘、SSD或分区等。物理磁盘是存储数据的物理介质。

  2. 物理卷(Physical Volume,PV):将物理磁盘转换为LVM中的物理卷。这可以通过使用pvcreate命令将物理磁盘标记为物理卷。

  3. 卷组(Volume Group,VG):将一个多个物理卷组合成卷组。卷组是一个逻辑的单元,类似于一个存储池。使用vgcreate命令创建卷组,并将物理卷添加到卷组中。

  4. 逻辑卷(Logical Volume,LV):从卷组中划分出逻辑卷。逻辑卷就像硬盘上的一个分区,用于存储数据。使用lvcreate命令创建逻辑卷,并可以指定逻辑卷的大小和格式

  5. 格式化:一旦逻辑卷创建完毕,可以使用文件系统指令例如mkfs命令)对逻辑卷进行格式化以便能够在其中存储文件系统

  6. 挂载格式化后的逻辑卷可以被挂载到文件系统树中的指定目录上。挂载操作将逻辑卷与特定的目录关联起来,使得可以在该目录访问和使用逻辑卷中的文件系统

实操

一、在VMware虚拟机添加新磁盘

image-20230624230656750

虚拟设置选择硬盘添加一块新硬盘

image-20230624230821604

二、查看linux磁盘信息

使用命令lsblk,来查看系统上的磁盘分区信息

lsblk

image-20230624231422153

在此我们发现一下信息

三、创建物理卷(PV)

在此我们需要把sdb这块硬盘设置为物理卷(PV),使用以下命令:

pvcreate /dev/sdb

image-20230624232051918

pvcreate /dev/sdb” 是一个LVM命令,用于将指定的磁盘或分区 /dev/sdb 转换为LVM(Logical Volume Manager)中的物理卷(Physical Volume, PV)。

创建成功后,我们输入pvdisplay查看我们新建的物理卷(PV)信息

image-20230624232320093

输出中的信息显示了物理卷的一些重要属性

  • PV Name:物理卷的名称/dev/sdb
  • VG Name:物理卷尚未分配给任何卷组(Volume Group, VG),因此该字段为空
  • PV Size:物理卷的总大小为20.00 GiB。
  • Allocatable当前物理卷不可分配(Allocatable = NO)。
  • PE Size:物理卷上的物理区(Physical Extent,PE)大小为0,这意味着物理卷尚未格式化或分割成任何逻辑结构
  • Total PE:物理卷上总共的物理区数量为0。
  • Free PE:物理卷上可用的物理区数量为0,即全部空间都尚未分配给任何逻辑卷。
  • Allocated PE:已经分配给逻辑卷的物理区数量为0,即尚未在物理卷上创建任何逻辑卷。
  • PV UUID:物理卷的唯一标识符为9EOuPp-Qj1o-i2Bz-8ccix4zx-NyU0-v4He31。

四、创建卷组(VG)

我们成功创建了物理卷后,就需要再创建一个卷组(VG),使用如下命令:

vgcreate my_disk /dev/sdb

image-20230624232610069

此时我们使用vgdisplay,来查看验证是否创建成功

image-20230624232731280

输出中的信息显示了卷组(VG)的一些重要信息分别是:

  • VG Name:卷组的名称my_disk
  • Format:卷组使用的格式为lvm2,代表LVM的第二版本
  • Metadata Areas:卷组中的元数据区域数量为1,即指定了一个物理卷。
  • Metadata Sequence No:元数据序列号为1,用于跟踪元数据的更改
  • VG Access:卷组以读写方式访问
  • VG Status:卷组状态可调整大小(resizable),表示卷组中的逻辑卷大小可以调整。
  • MAX LV:卷组最大逻辑卷数量为0。
  • Cur LV:当前卷组中的逻辑卷数量为0。
  • Open LV:当前处于打开状态的逻辑卷数量为0。
  • Max PV:卷组中最大物理卷数量为0。
  • Cur PV:当前物理卷数量为1。
  • Act PV:当前活跃的物理卷数量为1。
  • VG Size:卷组的总大小为不到20.00 GiB。
  • PE Size:物理区(Physical Extent)的大小为4.00 MiB。这是卷组中逻辑和物理卷的分配单位
  • Total PE:卷组中的总物理区数量为5119。
  • Alloc PE / Size:已分配给逻辑卷的物理区数量为0,对应的大小为0。
  • Free PE / Size:可用的物理区数量为5119,对应的大小为不到20.00 GiB。
  • VG UUID:卷组的唯一标识符为iTpe74-MDzM-wERS-b5To-0PD7-tBwW-LMRufA。

五、加入卷组,创建逻辑卷(LV)

成功创建卷组后,需要把物理卷(PV)分配到卷组(VG)中,也就是创建逻辑卷(LV)使用以下命令:

lvcreate -L 4G -n my_home my_disk

image-20230624234646225

这个命令的意思是在卷组 my_disk 中创建一个逻辑卷 my_home,大小为 4GB。以下是对该命令中的参数解释

当命令执行成功后,将在卷组 my_disk 中创建一个名为 my_home 的逻辑卷,并分配 4GB 的空间给它。

此时使用命令lvdisplay,来查看验证逻辑卷是否创建成功

lvdisplay

image-20230624234803817

根据输出的信息显示逻辑卷(LV),的重要信息它们分别是:

根据输出,逻辑卷my_home的状态为可用,大小为4.00 GiB,在/dev/my_disk/my_home路径上可以访问

六、格式化逻辑卷

在做完以上一系列操作后,LVM分区已经创建好,接下来就是对该分区进行格式化,使用mkfs.ext4赋予它文件系统

mkfs.ext4 /dev/my_disk/my_home

image-20230624235518735

注意:

  • 在LVM选择文件系统的时候,最好选择ext4文件系统,在ext4文件系统下我们可以无损的对逻辑卷扩容或者缩容,

  • 而XFS文件系统,只能对逻辑卷进行无损扩容,并不能进行无损缩容,如果一定要缩容,就要重新格式化逻辑卷,这就导致存储在逻辑卷中的数据丢失

根据信息提示,现在已经成功的创建了一个ext4的文件系统,接下来就是最后一步,把它挂载到根目录下就可以正常使用了

七、挂载与卸载

现在我们需要给刚刚新建的逻辑分区创建一个挂载点,也就是新建一个文件夹

挂载是在操作系统层面上进行的,它创建了一个链接,使得文件系统中的数据可以通过指定的挂载点在操作系统访问。一旦文件系统被成功挂载,用户可以在挂载点下访问和操作文件。其实挂载就是一种链接,它是操作系统与存储设备接口,我们通过挂载点去访问存储设备

mkdir /home/my_home

image-20230625000105084

挂载又分为永久挂载和临时挂载

永久挂载:

临时挂载:

永久挂载设置

配置永久挂载,需要先用vim编辑etcfstab文件

image-20230625001557445

在此处添加需要挂载设备的相关信息:

该条目描述要挂载的文件系统。每个条目通常包含七个字段,以空格或制表符分隔

<设备名称> <挂载点> <文件系统类型> <挂载选项> <文件系统检查选项> <备份间隔> <优先级>
  • <设备名称>:要挂载的设备的名称或设备ID。例如,/dev/my_disk/my_homeUUID:5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM
  • <挂载点>:指定要将设备挂载到的目录。例如,/mnt
  • <文件系统类型>:设备上的文件系统类型,例如ext4
  • <挂载选项>选择设备的挂载选项,如rw读写)或ro只读)。
  • <文件系统检查选项>:指定设备的文件系统检查选项(如每次挂载时检查、跳过检查等)。
  • <备份间隔>:指定文件系统备份的间隔(如每日、每周等)。
  • <优先级>:指定文件系统挂载的优先级

挂载名称我们可以通过lvdisplay查询

image-20230625002002891

然后根据该信息进行文件的配置

image-20230625002335243

完成/etc/fstab文件设置后,需要重启系统或者使用命令mount -a来重新加载,使得更改生效

使用完毕以后我们使用 lsblk命令来查看LVM分区是否成功挂载:

image-20230625002739884

从以上输出的信息中发现,我们的操作都已经成功了 文件已经成功的挂载在/home/my_home目录下了。

临时挂载配置

设置完永久挂载,我们再来试试如何进行临时挂载。现在需要把刚刚设置的永久挂载取消,在/etc/fstab文件中删除刚刚配置的条目。

image-20230625003100450

现在已经完全取消了。我们再来尝试临时挂载,使用以下命令:

mount /dev/my_disk/my_home /home/my_home

image-20230625003302099

临时挂载比永久挂载更简单,只需要一条命令就搞定了,挂载学会了,我们来看看如何卸载,使用如下命令:

umount /home/my_home

image-20230625003443322

一条命令搞定。简单快捷

LVM的增删改查

LVM的查

其实LVM的查,我们在创建LVM的过程已经使用过的分别就是:pvdisplayvgdisplay、lvdisplay 。它们分别可以查看物理卷、卷组、逻辑卷相关信息.

除了以上命令,还可以使用vgs、lvsdf -h 来查看LVM的信息

image-20230625004611935

同时还有三个命令可以用来扫描PV、VG、LV卷的状态信息

pvscan

image-20230625104010968

vgscan

lvscan	

image-20230625104058870

LVM的改

在日后的运行中,随着内容不断增加,存储空间也逐渐减少,这时候就可以为逻辑卷增加存储空间了,因为LVM是动态分配存储空间的技术,我们可以随时为该逻辑卷增加或减少空间,这种操作不限于是同一块磁盘,也可以是其他磁盘,这也极大的方便我们随时更改空间。更改空间可以使用以下命令去操作:

lvresize -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增、缩空间,这条命令可以指定空间大小
lvextend -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增空间
lvreduce -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM缩减空间

image-20230625005458337

使用lvresize 命令后,使用lsblk显示 空间已经变成10G了,但是df -h命令却还是显示为4G,这是因为lvresize 命令只调整了逻辑卷的大小,并没有直接调整文件系统内部的大小。您需要相应地调整文件系统的大小,以使其能够利用新的逻辑卷空间。

处理办法也很简单,使用下行命令即可恢复正常:

resize2fs -p /dev/<卷组名>/<逻辑卷名>
或者在扩容lvresize 命令后加上-p参数等价于resize2fs -p, 它会自动调整文件系统的大小。

第一个方法

image-20230625010121984

第二个方法

image-20230625112552462

相比之下,第二种方法更为简单实用。

LVM的删

删除LVM逻辑卷,需要先卸载逻辑卷,然后使用才能以下命令来进行删除操作:

umount /<逻辑卷挂载点>
lvremove /dev/<卷组名>/<逻辑卷名>

image-20230625010912282

这样就可以成功将逻辑卷删除

删除物理卷、和卷组的命令和其类似它们分别为:

pvremove /dev/<设备名> # 删除物理卷(PV)
vgremove /dev/<卷组名> # 删除卷组(VG)

在删除物理卷(PV)前,需要将分配到卷组(VG)中的容量先返回

使用命令:

vgreduce my_disk /dev/sdc

image-20230625105336231

我们在查看vg卷中,空间是否已经返还。

image-20230625105428546

从以上信息中,我们可以发现空间已经返还给物理卷,现在我们可以使用pvremove删除物理卷

image-20230625105532314

image-20230625105618791

根据以上显示的信息,我们可以确定已经把sdc从LVM中删除了,sdc又处于最原始的状态。

LVM的增

为什么要把增放到最后讲,因为在之前的操作中,我们已经对LVM的增基本全部都操作了一遍,创建一个LVM需要有三个步骤

它们分别为:

  • 创建物理卷(PV)

    • 物理卷就相当于是我们的存储池,它们可以是硬盘、分区或raid设备。

    • 创建物理卷的命令为:

    • pvcreate /dev/<设备名>
      
  • 创建卷组(VG)

    • 卷组就是由一个或多个物理卷组成的逻辑容器,它们组成一个集合用来管理和分配存储池中的总体存储容量,并提供逻辑划分

    • 创建卷组的命令为:

      vgcreate <卷组名> /dev/<设备名>
      
  • 创建逻辑卷(LV)

    • 逻辑卷就是从卷组中分配出来的逻辑空间,它可以看做为物理卷和文件系统的中间层,逻辑卷它是用于实际存储的逻辑分区

    • 创建逻辑卷命令为:

    • lvcreate -L <空间大小> /dev/<卷组名>/<逻辑卷名>
      

LVM 新增硬盘如何扩充、缩减

思路

新添加的硬盘需要扩充到之前的逻辑卷中,需要把新硬盘线创建一个物理卷,然后加入逻辑卷相应的卷组当中,在使用逻辑卷改命令去扩充空间

一、新建物理卷

image-20230625012936272

二、加入卷组

一步命令有所不同,它的命令为:

vgextend my_disk /dev/sdc

image-20230625013749677

image-20230625013900064

三、给逻辑卷扩充空间

lvextend -L -r +10G /dev/my_disk/my_home

image-20230625114312364

这样我们就成功的为my_home用新的硬盘扩充到20G了

四、缩减逻辑卷空间

lvreduce -L -r -15G /dev/my_disk/my_home

这样我们就成功的缩减了my_home逻辑卷15G的容量,现在它只有4.8G

LVM的快照功能

快照介绍

在 LVM 中,快照是逻辑卷的一种副本,用来记录逻辑卷在创建快照时的数据状态。它类似于文件系统的“影子”,通过记录数据状态,可以在需要时恢复逻辑卷到快照所记录的状态。

与实际备份不同,快照只是逻辑卷的一个影子,无法防止硬件故障引起的数据丢失。而备份是对实际数据的完整拷贝,即使原始数据丢失,仍然可以通过备份进行数据恢复

快照的恢复速度更快,因为它仅需要恢复逻辑卷的变化部分,而不是完整的数据。相对于备份需要恢复整个数据量,快照只需要恢复差异部分,因此速度更快。在一个大容量的逻辑卷中,快照的消耗通常比较轻量

在生产环境中,通常会结合快照和备份来进行数据保护。先创建快照,然后进行备份,这样就可以同时获得快照的恢复速度和备份完整性的优点。快照可以提供快速的恢复,备份则可以提供完整的数据保护。

总结来说,LVM 的快照功能类似于文件系统的“备份”,它记录逻辑卷在创建快照时的数据状态,用于快速恢复数据。但快照只能恢复逻辑错误或操作失误,并不能防止硬件故障造成的数据丢失

LVM快照实操

一、创建快照逻辑卷
  • 在这一步其实和创建逻辑卷的指令是差不多的 ,只是参数需要变为-s
  • 快照的容量最少也要和原始逻辑卷的大小一致,可以保证原始卷所有的数据都能写入到快照中。
lvcreate -L 10G --snapshort -name home_snapshot my_disk/my_home

my_home_snapshot是快照卷的名称,而后门的/dev/my_disk/my_home 则是原始逻辑卷的路径表示创建这个快照是为它而服务

image-20230625134809480

在使用lvs查询的时候,已经创建成功了

image-20230625134919867

创建的快照,不需要格式化也可以挂载在根目录上,因为它只是源逻辑卷的元数据的副本,所以不需要重新分配空间。快照卷将记录源逻辑卷在快照创建之前的数据状态,因此其文件系统和数据布局与源逻辑卷是相同的

image-20230625135128802

image-20230625135409390

原始逻辑卷文件内容

快照逻辑卷文件内容

快照就这样创建成功了

二、快照的恢复使用

增删改查操作

快照逻辑卷和普通的逻辑卷的增删改查方式基本都一样,可以参考以上LVM的增删改查的命令去操作。

快照的使用

如果只是单文件需要恢复,可以直接去快照挂载的路径copy文件到原始文件系统当中,可以一般文件的copy方法一致。

如果原始文件系统出现逻辑错误,或者大量内容被误操作,我们可以通过lvconvertmerge命令来执行合并快照操作。

lvconvert -merge <快照路径>

image-20230625140246483

我先模拟一下数据被误删的情况,在my_home中随意删除一些数据内容,然后在去合并快照,看看是否能恢复文件

合并前,需要把原始逻辑卷先卸载,是为了确保在合并过程中数据的一致性和完整性

umount /home/my_home

image-20230625142052111

my_home原始逻辑卷已经卸载

lvconvert -merge /dev/my_disk/home_snapshort

image-20230625143126128

经过操作后我们已经把原始卷和快照逻辑卷合并了。在来挂载原始逻辑卷是否恢复

image-20230625143318394

现已经恢复了之前删掉的数据。

快照在合并以后,之前的快照就会消失,留下来的就是一个完整原始逻辑卷,如果有需要可以在创建一个快照

LVM镜像

简介

镜像(Mirroring)是一种提供数据冗余和容错的机制,通过在多个物理存储设备上创建逻辑卷的副本。镜像创建了逻辑卷的实时拷贝,确保数据的高可用性可靠性。当一个物理设备发生故障时,可以使用镜像卷继续访问数据。镜像卷的更新操作会同时更新镜像的副本。

虽然镜像和快照都涉及到逻辑卷的复制,但它们的目的和用途是不同的。镜像旨在提供冗余和容错,以保证数据的可用性可靠性。而快照则是为了保护和备份数据,并提供可以随时回滚历史数据状态的能力。

实操

创建一个带镜像的逻辑卷,必须是在创建逻辑卷之前就规划好,如果是想在后期再添加逻辑卷基本是不可能的。

在使用LVM镜像逻辑卷时,我们要先了解以下几个概念

镜像逻辑卷(Mirrored Logical Volume)使用了数据卷(Data Volume)来存储实际的数据。

  • 数据卷是 LVM 逻辑卷中实际用于存储文件系统、用户数据和其他数据的部分。当通过 LVM 创建一个逻辑卷时,数据卷将被创建并分配存储空间,这些存储空间用于存储实际的数据。

  • 而镜像逻辑卷是为了提供镜像和冗余功能而创建的。镜像逻辑卷包含了一个原始逻辑卷和一个或多个镜像卷(也称为镜像副本)。镜像卷是一种特殊的数据卷,用于存储与原始逻辑卷相同的数据副本。

  • 当对镜像逻辑卷进行写操作时,数据将被同时写入到原始逻辑卷和镜像卷中。这样,即使其中一个卷发生故障,数据仍然可从其他正常的卷中恢复和访问,从而提供了数据的冗余性和可用性

  • 在 LVM 的镜像逻辑卷中,数据卷指的是用于存储实际数据的卷,它可以是原始逻辑卷或镜像卷。数据卷在镜像逻辑卷中承担着存储和保护数据的重要角色

日志卷:

  • 日志卷(log volume)是用于记录逻辑卷(logical volume)上的数据变更操作的一种特殊卷。它用于提供数据的一致性和完整性,以及恢复逻辑卷数据状态。

  • 日志卷主要用于 LVM 的写操作,当有写操作发生时,相应的修改会首先被记录在日志卷中。通过记录日志操作,可以确保在意外故障发生时,可以恢复逻辑卷的数据状态,并保证数据的一致性。这种机制被称为写日志write logging)。

  • 日志卷的创建是可选的,不是必需的,它提供了额外的数据保护和可靠性。在创建逻辑卷时,可以选择指定日志卷。如果没有指定日志卷,写操作将会在不使用日志的情况下直接将数据写入逻辑卷中。

  • 日志卷通常与逻辑卷位于同一卷组中,但也可以将日志卷和逻辑卷放置到不同的卷组中,以实现更灵活的配置。

在创建镜像逻辑卷前,要保存物理卷(PV)在2个以上,这是为了提供数据冗余和容错性,以确保数据的可用性可靠性。因为数据卷和镜像卷都要1个物理卷,最好是两块不同的硬盘,这样才能最好保证数据的可靠性。

把之前的LVM各类卷全部remove掉,重新创建一个卷组(VG):

image-20230625162001049

创建一个镜像逻辑卷的命令为:

lvcreate -L <逻辑卷大小> -m<镜像数列(冗余级别> -n <镜像名> <物理卷路径1(数据卷和镜像卷)><物理卷路径2(数据卷和镜像卷)><物理卷路径3(日志卷)>

还是刚刚的LVM系统,继续创建一个镜像来测试

lvcreate -L 5G -m1 -n home_mirror my_disk /dev/sdb /dev/sdc /dev/sdd

image-20230625162331645

现在已经都已经创建好了一个镜像逻辑卷。

再来把这快镜像逻辑卷格式化并挂载。

使用命令

mkfs.ext4 /dev/my_disk/mirror_home &amp;&amp; mkdir -p /home/mirror_home &amp;&amp; mount /dev/my_disk/mirror_home  /home/mirror_home

image-20230625162833223

已经成功的格式化,并挂载到/home/mirror_home 挂载点下。

测试镜像卷的恢复能力
创建测试

复制一些文件内容到我们的镜像盘中

image-20230625163147982

模拟破坏

使用命令:

dd if=/dev/zero of=/dev/sdb count=10 bs=1M

image-20230625164010030

dd 是一个强大的命令行工具,可以用于复制文件、设备和数据流。在你给出的命令中,以下是各个选项的含义:会导致硬盘里的数据损坏。

通过执行这个命令,dd 将从 /dev/zero读取 10 个 1MB 大小的块,并将其写入 /dev/sdb,从而在 /dev/sdb 上创建一个大小为 10MB 的文件。

image-20230625165526225

此时我们发现/dev/sdb 已经处于unknown表示设备未被正确识别无法访问

因为我们做了镜像卷,所以还是可以访问该卷中的数据,

image-20230625171423705

现在我们把损坏的硬盘移除掉使用如下命令:

vgreduce --removemissing --force my_disk

当执行这个命令时,LVM 会从卷组 vg_test移除任何标记为缺失的物理卷。缺失的物理卷指的是在卷组中定义了但当前无法访问的物理卷。这可能是由于物理卷故障、设备不可用或其他原因导致的。

移除缺失的物理卷的目的是确保卷组的正常运行,并使其仅依赖于可用的物理卷。然而,需要谨慎操作并确认执行此操作不会导致数据丢失。因为 --force 选项会强制执行操作,即使存在数据丢失风险

image-20230625171634150

现在已经把数据损坏的硬盘移除掉了,

image-20230625171735057

恢复镜像

把刚移除的硬盘从新加入到物理卷、卷组中。

image-20230625172154593

接在来我们进行镜像盘恢复:

使用命令

lvconvert --repair /dev/my_disk/mirror_home	

image-20230625175546202

这样我们就完成镜像的恢复。

总结

LVM是一款强大的磁盘管理工具,它无视了磁盘在硬件上的区分,能够完美的解决挂载空间大小扩充、缩减的需求,操作简单方便,并且提供了更高级别的存储管理,如卷组和逻辑卷的概念。卷组是物理卷的集合,而逻辑卷则是从卷组中划分出的逻辑存储单元。这种层次结构使得存储的管理更加灵活和可控。使用LVM,您可以随时根据需求扩展或缩减逻辑卷的大小,而无需对文件系统进行复杂的重新分区或复制数据的操作。这使得存储空间的管理变得更加简单和高效。

总之,LVM是一个功能强大且易于使用的磁盘管理工具,能够提供灵活的存储管理,动态调整存储大小,数据迁移能力以及快照和备份功能。因此,它在服务器虚拟化环境中被广泛应用,为用户带来便捷和高效的存储管理体验

原文地址:https://blog.csdn.net/weixin_44369049/article/details/131404958

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_21580.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注