前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >原 建立共享存储实验记录

原 建立共享存储实验记录

作者头像
王果壳
发布于 2018-05-17 04:09:17
发布于 2018-05-17 04:09:17
1.6K00
代码可运行
举报
文章被收录于专栏:王硕王硕
运行总次数:0
代码可运行

共享存储配置     (1).添加一块1G硬盘     (2).为了能不重启虚机的情况下,特作以下操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 host2]# grep mpt /sys/class/scsi_host/host?/proc_name
/sys/class/scsi_host/host2/proc_name:mptspi
[root@node0 host2]# vi /etc/exports 
[root@node0 host2]# echo "- - -" > /sys/class/scsi_host/host2/scan 
[root@node0 host2]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00056562

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        2358    18631680   83  Linux
/dev/sda3            2358        2611     2031616   82  Linux swap / Solaris

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

    (3).初始化sdb

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 host2]# fdisk /dev/sdb 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x55dbe72b.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: 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): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   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)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): 
Using default value 130

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

    (4).建立lvm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 host2]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@node0 host2]# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
[root@node0 host2]# pvdisplay
  "/dev/sdb1" is a new physical volume of "1019.72 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1019.72 MiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dWj8Zh-V5X8-m9wc-tnnp-txIC-VqQq-jX2aRG
   
[root@node0 host2]# vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found
[root@node0 host2]# vgcreate pgdata /dev/sdb1
  Volume group "pgdata" successfully created
[root@node0 host2]# vgdisplay
  --- Volume group ---
  VG Name               pgdata
  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               1016.00 MiB
  PE Size               4.00 MiB
  Total PE              254
  Alloc PE / Size       0 / 0   
  Free  PE / Size       254 / 1016.00 MiB
  VG UUID               gYuSRU-nm7P-mnLq-2cC0-CbSG-mAXS-9CzfDS
   
[root@node0 host2]# lvcreate -L 500M -n lvdata pgdata
  Logical volume "lvdata" created
[root@node0 host2]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/pgdata/lvdata
  LV Name                lvdata
  VG Name                pgdata
  LV UUID                tcseQe-JSS8-P280-M46S-pBTN-tGuU-Wkl4Z5
  LV Write Access        read/write
  LV Creation host, time node0, 2015-12-27 06:56:46 -0800
  LV Status              available
  # open                 0
  LV Size                500.00 MiB
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[root@node0 host2]# mkfs -t ext4 /dev/pgdata/lvdata
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override. 

    (5).建立本地映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 ha]# pwd
/home/ha
[root@node0 ha]# mkdir data
[root@node0 ha]# mount /dev/pgdata/lvdata data/
[root@node0 ha]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  3.7G   13G  22% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/mapper/pgdata-lvdata
                      485M   11M  449M   3% /home/ha/data

    (6).建立远程映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 ha]# rpm -qa | grep nfs
nfs-utils-1.2.3-64.el6.x86_64
nfs-utils-lib-devel-1.1.5-11.el6.x86_64
nfs4-acl-tools-0.3.3-7.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
[root@node0 ha]# rpm -qa | grep rpcbind
rpcbind-0.2.0-11.el6.x86_64
[root@node0 ha]# cat /etc/exports 
/home/ha/data/ 192.168.238.0/24(rw,no_root_squash,no_all_squash,sync)
[root@node0 ha]# /etc/init.d/rpcbind status
rpcbind (pid  1802) is running...
[root@node0 ha]# /etc/init.d/nfs status
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
[root@node0 ha]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@node0 ha]#
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cd /home/ha/
[root@localhost ha]# mkdir data
[root@localhost ha]# mount -t nfs 192.168.238.129:/home/ha/data/ data/
[root@localhost ha]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  3.5G   14G  21% /
tmpfs                 491M  232K  491M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
192.168.238.129:/home/ha/data/
                      485M   11M  449M   3% /home/ha/data
[root@localhost ha]#

    (7).添加一个2G硬盘后初始化,同(3)。     (8).扩容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 ha]# pvcreate /dev/sdc1 
  Physical volume "/dev/sdc1" successfully created
[root@node0 ha]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               pgdata
  PV Size               1019.72 MiB / not usable 3.72 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              254
  Free PE               129
  Allocated PE          125
  PV UUID               dWj8Zh-V5X8-m9wc-tnnp-txIC-VqQq-jX2aRG
   
  "/dev/sdc1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               WCO5zU-ExbX-1thO-E1to-N9tJ-Hpmu-kytdTQ
   
[root@node0 ha]# vgdisplay
  --- Volume group ---
  VG Name               pgdata
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1016.00 MiB
  PE Size               4.00 MiB
  Total PE              254
  Alloc PE / Size       125 / 500.00 MiB
  Free  PE / Size       129 / 516.00 MiB
  VG UUID               gYuSRU-nm7P-mnLq-2cC0-CbSG-mAXS-9CzfDS
   
[root@node0 ha]# vgextend pgdata /dev/sdc1 
  Volume group "pgdata" successfully extended
[root@node0 ha]# vgdisplay
  --- Volume group ---
  VG Name               pgdata
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.99 GiB
  PE Size               4.00 MiB
  Total PE              765
  Alloc PE / Size       125 / 500.00 MiB
  Free  PE / Size       640 / 2.50 GiB
  VG UUID               gYuSRU-nm7P-mnLq-2cC0-CbSG-mAXS-9CzfDS
   
[root@node0 ha]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/pgdata/lvdata
  LV Name                lvdata
  VG Name                pgdata
  LV UUID                tcseQe-JSS8-P280-M46S-pBTN-tGuU-Wkl4Z5
  LV Write Access        read/write
  LV Creation host, time node0, 2015-12-27 06:56:46 -0800
  LV Status              available
  # open                 1
  LV Size                500.00 MiB
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[root@node0 ha]# lvextend -L 2.2G /dev/pgdata/lvdata
  Rounding size to boundary between physical extents: 2.20 GiB
  Extending logical volume lvdata to 2.20 GiB
  Logical volume lvdata successfully resized
[root@node0 ha]# resize2fs /dev/pgdata/lvdata
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/pgdata/lvdata is mounted on /home/ha/data; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 9
Performing an on-line resize of /dev/pgdata/lvdata to 2310144 (1k) blocks.

The filesystem on /dev/pgdata/lvdata is now 2310144 blocks long.

[root@node0 ha]# 

    (9).验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node0 ha]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  3.7G   13G  22% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/mapper/pgdata-lvdata
                      2.2G   11M  2.1G   1% /home/ha/data
[root@node0 ha]#
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Centos7创建LVM及扩容
20.使扩容的空间写入文件系统,如果文件系统格式是xfs则用xfs_growfs命令
贰叁壹小窝
2020/07/22
1.1K0
Linux根目录扩容(lvm)
Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变。 产生的原因是没有给磁盘格式化,没有增加分区。
用户9949933
2023/02/24
6.4K0
Linux扩容分区操作过程
查看新增磁盘 在服务器上新加一块10G大小的磁盘 [root@centos002 ~]# fdisk -l ..............................................
民工哥
2020/09/16
1.6K0
Linux扩容分区操作过程
跨磁盘扩容根目录
物理卷 Physical Volume (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的 header,其余部分被切割为一块块物理区域(physical extents)
小陈运维
2023/02/06
1.9K0
Linux磁盘管理之LVM快速入门配置
描述:LVM——Logical Volume Manager就是动态卷管理在Linux2.4内核以上实现的磁盘管理技术,它可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。
全栈工程师修炼指南
2020/10/26
3.1K0
Linux磁盘管理之LVM快速入门配置
LVM添加硬盘并扩容至已有分区
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。LVM将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。
dogfei
2020/07/31
25.9K2
LVM添加硬盘并扩容至已有分区
mysql 分区 扩充_mysql分区LVM扩容
场景:mysql的数据库目录为/data随着数据量的增加,该分区不够用了,准备添加一块ssd硬盘,扩容该分区!
全栈程序员站长
2022/09/06
3.2K0
LVM基础操作步骤梳理
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
用户1679793
2020/02/13
1.7K0
Linux磁盘管理之LVM快速入门配置
描述:LVM——Logical Volume Manager就是动态卷管理在Linux2.4内核以上实现的磁盘管理技术,它可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。
全栈工程师修炼指南
2022/09/28
1.8K0
Linux磁盘管理之LVM快速入门配置
CentOS 7 LVM创建与使用
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/53992360
shaonbean
2019/05/26
1.7K0
CentOS7.x系统根目录分区扩容
说明:系统版本为 Linux version 3.10.0-327.el7.x86_64
拓荒者
2019/08/22
1.9K0
linux系统下创建lvm挂载到指定目录的操作步骤
在企业中有时我们为方便安装软件、数据的管理,需要把安装软件、数据放到固定目录下,磁盘满了方便扩展,这里假如需要一个/data目录存放数据,并单独进行挂载。
米米素材网
2022/07/31
5.1K0
Linux基础(day16)
(若系统中没做lvm操作,但是 df -h 查看时会发现存在lvm文件,那是因为在安装系统的时候,未设置手动分区,系统就默认以lvm的形式分区了) 4.10/4.11/4.12 lvm讲解 LVM讲解
运维小白
2018/02/06
1.7K0
Linux基础(day16)
Linux LVM --- 硬盘扩容
LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,在Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。
Kevin song
2020/03/24
26K0
Linux LVM --- 硬盘扩容
虚拟机lvm 扩容「建议收藏」
1.先在Vmware上,把虚拟机硬盘做扩展,如果有快照存在,磁盘可能是不可编辑状态,先删除快照后再扩展。
全栈程序员站长
2022/08/28
1.1K0
centos7上的xfs配置
XFS是扩展性高、高性能的文件系统。也是rhel7/centos7的默认文件系统。 XFS支持metadata journaling,这使其能从crash中更快速的恢复。 它也支持在挂载和活动的状态下进行碎片整理和扩容。 通过延迟分配,XFS 赢得了许多机会来优化写性能。 可通过工具xfsdump和xfsrestore来备份和恢复xfs文件系统, xfsdump可使用dump级别来完成增量备份,还可通过size,subtree,inode flags来排除文件。 也支持user、group、project配
小小科
2018/05/02
1.7K0
LVM创建实例及相关注释
LVM创建 pv—>vg—->lv—->快照 创建前准备了四块1g硬盘分别为:sdb sdc sdd sde,并分别给四块盘划分了1G的空间,并指定了分区系统类型为8e(即Linux LVM) [root@localhost ~]# fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-13
小小科
2018/05/03
7060
linux 将现有分区转换为lvm2分区并扩展放大容量
此次主要进行了/dev/sdb从默认系统转换到lvm系统模式。期间备份恢复数据,不同磁盘下的不同分区创建pv加入同一vg组,放大lv容量,从vg中删除单个pv,通过实验验证lvm2突破了在lvm1版本时pe size大小限制vg大小的限制,自动挂载lv等。 期间经历重启由于fstab文件忘记修改导致无法开机,后进入单用户救援模式修改/etc/fstab后恢复,经过此番折腾更加深入了解了linux的磁盘文件系统模式。 1、查看现有系统信息。 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 99190032 4077672 89992368 5% / /dev/sdb1 567161764 246748 537640172 1% /opt /dev/sda1 99098 12238 81743 14% /boot tmpfs 8196244 0 8196244 0% /dev/shm [root@localhost ~]# fdisk /dev/sdb The number of cylinders for this disk is set to 72891. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sdb: 599.5 GB, 599550590976 bytes 255 heads, 63 sectors/track, 72891 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 1 72891 585496926 83 Linux 2、备份数据,将原先/opt下的文件复制到新建的mkdir /optbak下,已做备份。 [root@localhost ~]# ll /opt/ 总计 32 drwxr-xr-x 2 root root 4096 01-27 15:20 disk drwx------ 2 root root 16384 01-22 15:40 lost+found drwxr-xr-x 3 root root 4096 01-23 12:54 svn drwxrwxrwx 3 root root 4096 02-02 16:50 svntongbu drwxr-xr-x 5 root root 4096 01-30 14:43 wzcs 执行cp -r /opt /optbak后 [root@localhost ~]# ll /optbak/opt/ 总计 20 drwxr-xr-x 2 root root 4096 02-08 15:48 disk drwx------ 2 root root 4096 02-08 15:48 lost+found drwxr-xr-x 3 root root 4096 02-08 15:48 svn drwxr-xr-x 3 root root 4096 02-08 15:48 svntongbu drwxr-xr-x 5 root root 4096 02-08 15:48 wzcs 3、执行umount /opt 写在文件挂载,这时/opt 目录下的文件已经看不到了,因为它所挂载的硬盘已被从文件系统卸载了。但是/opt目录仍然存在,只是成空文件夹了。 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 95G 4.0G 86G 5% / /dev/sda1 97M 12M 80M 14% /boot tmpfs 7.9G 0 7.9G 0% /dev/shm 4、现在开始执行将原有磁盘系统转化为lvm,因为服务器原先有两块磁盘sda sdb,sda为系统盘 其中sda3已经设置为了lvm分区,sdb这块磁盘由于我只分了一个区现在我需要把它删了重建。 [root@localhost ~]# fdisk /dev/sdb T
葫芦
2019/05/09
4.5K0
学习笔记0323----linux基本命令(四)(磁盘管理)
linux基本命令 预习内容 1.磁盘管理命令 df 1.1 查看磁盘使用情况 df -h 1.2 查看swap使用情况 1.3 查看磁盘inode使用情况 df -i 1.4 磁盘使用情况用M显示 df -m 2.查看目录文件大小 du -sh 3.磁盘分区、格式化、挂载 3.1 虚拟机添加一块10g的磁盘,添加完成重启虚拟机 3.2 磁盘划分分区 fdisk 3.3 磁盘格式化 3.3.1 mke2fs -t ext4 -b 2048 /dev/sdb1 3.3.2 mkfs.ext4 /dev
嘻哈记
2022/01/11
1.8K0
学习笔记0323----linux基本命令(四)(磁盘管理)
Linux挂载逻辑卷
只有第一块硬盘/dev/vda已经配置到/dev/vda1,另外三块硬盘只有设备没有device boot
mingjie
2022/05/12
6.2K0
相关推荐
Centos7创建LVM及扩容
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文