CentOS 6.5 LVM磁盘管理学习笔记
在系统运维和服务器管理过程中,经常遇到服务器磁盘容量不足,需要在线扩容的情况。普通磁盘分区的管理方式在逻辑分区划好之后就无法改变其大小。而LVM可以实现Linux服务器下面磁盘空间的在线扩容和动态管理,相对于普通的磁盘分区有很大的灵活性。
一、LVM简介
LVM是 Logical VolumeManager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上进行组合,做为一个大的硬盘空间来使用,当硬盘的剩余空间不够的时候,可以将其它的硬盘加入到分区当中,这样可以实现磁盘空间的动态管理。
二、LVM基本术语
物理卷(physical volume,PV):物理卷就是指硬盘分区,也可以是整个硬盘或已创建的RAID ,是LVM的基本存储设备,与普通物理存储介质的区别是该设备包含有LVM相关的管理参数。
卷组(volume group,VG):卷组是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个“LVM分区”(逻辑卷)。
逻辑卷(logical volume,LV):LVM的逻辑卷类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
物理块(physical extent,PE):物理卷以大小相等的物理块为存储的基本单位,同时也是LVM寻址的最小单元。
逻辑块(logical extent,LE):逻辑卷以大小相等的逻辑块为存储的基本单位,在同一个卷组中,LE的大小和PE是相等的,并且一一对应。
三、通过LVM分区方式安装Centos
1.选择安装类型,选择最后一个复选框,即创建自定义布局。
2.首先划分/boot分区,/boot分区建议使用物理分区。
3.将剩余空间划分为一个物理卷(PV)。
4.创建一个卷组(VG)。默认卷组名为VolGroup00,修改卷组名为vg51cto_lv。
5.在VG上面创建逻辑卷(LV)。逻辑卷默认为LogVol00,LogVol01……末两位由00开始依次递增。
6.LVM分区完成。
7.df -h 查看磁盘空间。
[root@hadoop01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg51cto_lv-LogVol01 9.9G 1.2G 8.2G 13% / tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 194M 29M 155M 16% /boot /dev/mapper/vg51cto_lv-LogVol03 20G 172M 19G 1% /data /dev/mapper/vg51cto_lv-LogVol02 5.0G 138M 4.6G 3% /home /dev/mapper/vg51cto_lv-LogVol04 23G 173M 22G 1% /usr/local
四、LVM管理
第一部分:卷组(volume group ,VG)相关的操作。
1.查看卷组(VG)名,卷组名为vg51cto_lv。
[root@hadoop01 ~]# vgscanReading allphysical volumes. This may take awhile...Foundvolume group "vg51cto_lv" using metadata type lvm2
2.查看卷组(VG)包含的PV、LV信息。
[root@hadoop01 ~]# vgdisplay -v vg51cto_lvUsingvolume group(s) on command lineFindingvolume group "vg51cto_lv"--- Volumegroup ---VGName vg51cto_lvSystemID Format lvm2MetadataAreas 1MetadataSequence No 6VGAccess read/writeVGStatus resizableMAX LV 0Cur LV 5OpenLV 5Max PV 0Cur PV 1Act PV 1VGSize 59.80 GiBPESize 4.00 MiBTotalPE 15309Alloc PE /Size 15309 / 59.80 GiBFree PE / Size 0 / 0 VGUUID uF4S1y-21AZ-KOfs-rNIF-lFmN-wQ75-2sX7F1--- Logicalvolume ---LVPath /dev/vg51cto_lv/LogVol04LVName LogVol04VGName vg51cto_lvLVUUID rvOZeO-Oz2G-wx7Z-u0b6-CvXj-FKEj-RwCLXOLV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:30:51 +0800LVStatus available# open 1LVSize 22.80 GiBCurrentLE 5837Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Blockdevice 253:2--- Logicalvolume ---LVPath /dev/vg51cto_lv/LogVol01LVName LogVol01VGName vg51cto_lvLVUUID d6YKrd-fWMJ-x61I-cfWG-v2me-Hn8V-xdm96LLV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:30:56 +0800LVStatus available# open 1LVSize 10.00 GiBCurrentLE 2560Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Blockdevice 253:0--- Logicalvolume ---LVPath /dev/vg51cto_lv/LogVol00LVName LogVol00VGName vg51cto_lvLVUUID hSyH2r-mvMV-th7q-geKg-sVpm-O1zJ-D6DwT8LV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:30:58 +0800LVStatus available# open 1LVSize 2.00 GiBCurrentLE 512Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Blockdevice 253:1--- Logicalvolume ---LVPath /dev/vg51cto_lv/LogVol03LVName LogVol03VGName vg51cto_lvLVUUID gKHLfz-O5Lm-TGMq-2LcF-xcH1-ASea-QCVVNcLV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:30:58 +0800LVStatus available# open 1LVSize 20.00 GiBCurrentLE 5120Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Blockdevice 253:3--- Logicalvolume ---LVPath /dev/vg51cto_lv/LogVol02LVName LogVol02VGName vg51cto_lvLVUUID lkqKmO-Dt0u-3CnB-UqeD-d6gc-2rmP-gWtKVpLV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:31:00 +0800LVStatus available# open 1LVSize 5.00 GiBCurrentLE 1280Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Blockdevice 253:4---Physical volumes ---PV Name /dev/sda2 PVUUID pKC6SA-fkfe-OAl2-scVr-tq0h-EAXD-AWpwgXPVStatus allocatableTotal PE /Free PE 15309 / 0
3.修改卷组名,由vg51cto_lv修改成vg51cto。
1)修改卷组名的命令为vgrename,语法如下:
vgrename OldVolumeGroupNameNew VolumeGroupName
[root@hadoop01 ~]# vgrename vg51cto_lv vg51ctoVolumegroup "vg51cto_lv" successfully renamed to "vg51cto"
2)修改/etc/fstab配置文件,把vg51cto_lv修改成vg51cto。
[root@hadoop01 ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Thu Nov 5 17:33:46 2015 # # Accessible filesystems, by reference, aremaintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8)and/or blkid(8) for more info # /dev/mapper/vg51cto-LogVol01 / ext4 defaults 1 1 UUID=9c02e519-3b85-4918-b9fd-395535cab496/boot ext4 defaults 1 2 /dev/mapper/vg51cto-LogVol03 /data ext4 defaults 1 2 /dev/mapper/vg51cto-LogVol02 /home ext4 defaults 1 2 /dev/mapper/vg51cto-LogVol04 /usr/local ext4 defaults 1 2 /dev/mapper/vg51cto-LogVol00 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
3)修改grub.conf配置文件,把vg51cto_lv修改成vg51cto。
[root@hadoop01 ~]# vim /etc/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub aftermaking changes to this file # NOTICE: You have a /boot partition. Thismeans that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg51cto_lv-LogVol01 # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg51cto-LogVol01 rd_NO_LUKSrd_LVM_LV=vg51cto/LogVol01 rd_LVM_LV=vg51cto/LogVol00 rd_NO_MD crashkernel=autoLANG=zh_CN.UTF-8 KEYBOARDTYPE=pcKEYTABLE=us rd_NO_DM rhgb quietinitrd/initramfs-2.6.32-431.el6.x86_64.img
4)reboot重启后用df -h查看。
[root@hadoop01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg51cto-LogVol01 9.9G 1.2G 8.2G 13% / tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 194M 29M 155M 16% /boot /dev/mapper/vg51cto-LogVol03 20G 172M 19G 1% /data /dev/mapper/vg51cto-LogVol02 5.0G 138M 4.6G 3% /home /dev/mapper/vg51cto-LogVol04 23G 173M 22G 1% /usr/local
第二部分:逻辑卷(logical volume,LV)相关的操作。
1.查看逻辑卷(LV)名。
使用LVM安装系统时,默认的卷组名为VolGroup00,卷组内的逻辑卷为LogVol00,LogVol01……末两位由00开始依次递增。
[root@hadoop01 ~]# lvscanACTIVE '/dev/vg51cto/LogVol04' [22.80 GiB]inheritACTIVE '/dev/vg51cto/LogVol01' [10.00 GiB]inheritACTIVE '/dev/vg51cto/LogVol00' [2.00 GiB]inheritACTIVE '/dev/vg51cto/LogVol03' [20.00 GiB]inheritACTIVE '/dev/vg51cto/LogVol02' [5.00 GiB]inherit
2.查看逻辑卷详细信息
lvdisplay 命令查看所有逻辑卷的详细信息
lvdisplay 逻辑卷名称
[root@hadoop01 ~]# lvdisplay /dev/vg51cto/LogVol00--- Logicalvolume ---LVPath /dev/vg51cto/LogVol00LVName LogVol00VGName vg51ctoLVUUID hSyH2r-mvMV-th7q-geKg-sVpm-O1zJ-D6DwT8LV WriteAccess read/writeLV Creationhost, time hadoop01, 2015-11-05 17:30:58 +0800LVStatus available# open 1LVSize 2.00 GiBCurrentLE 512Segments 1Allocation inheritRead aheadsectors auto- currentlyset to 256Block device 253:1
3.修改逻辑卷名
1)修改逻辑卷命令为lvrename,语法如下:
lvrename OldLogicalVolumePath NewLogicalVolumePath [root@hadoop01 ~]# lvrename /dev/vg51cto/LogVol00 /dev/vg51cto/lv_swapRenamed"LogVol00" to "lv_swap" in volume group "vg51cto" [root@hadoop01 ~]# lvrename /dev/vg51cto/LogVol01 /dev/vg51cto/lv_rootRenamed"LogVol01" to "lv_root" in volume group "vg51cto" [root@hadoop01 ~]# lvrename /dev/vg51cto/LogVol02 /dev/vg51cto/lv_homeRenamed"LogVol02" to "lv_home" in volume group "vg51cto" [root@hadoop01 ~]# lvrename /dev/vg51cto/LogVol03 /dev/vg51cto/lv_dataRenamed"LogVol03" to "lv_data" in volume group "vg51cto" [root@hadoop01 ~]# lvrename /dev/vg51cto/LogVol04 /dev/vg51cto/lv_usrRenamed"LogVol04" to "lv_usr" in volume group "vg51cto"
2)修改/etc/fstab配置文件。
[root@hadoop01 ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Thu Nov 5 17:33:46 2015 # # Accessible filesystems, by reference, aremaintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8)and/or blkid(8) for more info # /dev/mapper/vg51cto-lv_root / ext4 defaults 1 1 UUID=9c02e519-3b85-4918-b9fd-395535cab496/boot ext4 defaults 1 2 /dev/mapper/vg51cto-lv_data /data ext4 defaults 1 2 /dev/mapper/vg51cto-lv_home /home ext4 defaults 1 2 /dev/mapper/vg51cto-lv_usr /usr/local ext4 defaults 1 2 /dev/mapper/vg51cto-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
3)修改grub.conf配置文件。
[root@hadoop01 ~]# vim /etc/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub aftermaking changes to this file # NOTICE: You have a /boot partition. Thismeans that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg51cto_lv-LogVol01 # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg51cto-lv_root rd_NO_LUKSrd_LVM_LV=vg51cto/lv_root rd_LVM_LV=vg51cto/lv_swap rd_NO_MD crashkernel=autoLANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=usrd_NO_DM rhgb quietinitrd/initramfs-2.6.32-431.el6.x86_64.img
第三部分:物理卷(physical volume,PV)相关操作。
1.查看物理卷(PV)名,这里为/dev/sda2,linux中SCSI的第1块硬盘为/dev/sda,第2块硬盘为/dev/sdb,依此类推。
[root@hadoop01 ~]# pvscanPV /dev/sda2 VG vg51cto lvm2 [59.80 GiB / 0 free]Total: 1[59.80 GiB] / in use: 1 [59.80 GiB] / in no VG: 0 [0 ]
2.查看物理卷详细信息。
[root@hadoop01 ~]# pvdisplay---Physical volume ---PVName /dev/sda2VGName vg51ctoPVSize 59.80 GiB / not usable 3.00 MiBAllocatable yes (butfull)PESize 4.00 MiBTotalPE 15309FreePE 0AllocatedPE 15309PVUUID pKC6SA-fkfe-OAl2-scVr-tq0h-EAXD-AWpwgX
四、LVM空间管理
1.LVM减少LV空间
举例:减少/data空间,从20G减少到10G。
1)卸载设备(Unmount thefilesystem)
[root@hadoop01 ~]# umount /data/
2)e2fsck命令检查文件系统(Checkthe filesystem)
[root@hadoop01 ~]# e2fsck -f/dev/mapper/vg51cto-lv_data e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/mapper/vg51cto-lv_data: 11/1310720files (0.0% non-contiguous), 126289/5242880 blocks
3)resize2fs命令调整lv大小,10G表示调整后/data剩余空间。
[root@hadoop01 ~]# resize2fs/dev/mapper/vg51cto-lv_data 10G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on/dev/mapper/vg51cto-lv_data to 2621440 (4k) blocks. The filesystem on/dev/mapper/vg51cto-lv_data is now 2621440 blocks long.
4)lvreduce命令减少文件系统大小(Resizethe filesystem),表示将/data的空间减少9G。
[root@hadoop01 ~]# lvreduce -L -9G /dev/mapper/vg51cto-lv_dataWARNING: Reducing active logical volume to 11.00 GiBTHIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv_data?[y/n]: yReducing logical volume lv_data to 11.00 GiBLogical volume lv_data successfully resized
5)vgs命令查看卷组剩余空间为9G。
6)mount 文件系统并查看磁盘空间剩余空间。
2.LVM增加LV空间
举例:将刚才9G空间增加到/home分区。
1)vgs命令查看是否有空闲空间可以扩容。
[root@hadoop01 ~]# vgsVG #PV #LV #SN Attr VSize VFreevg51cto 1 5 0wz--n- 59.80g 9.00g
2)df -h查看当前磁盘空间
3)lvextend命令将home分区空间增加9G。
[root@hadoop01 ~]# lvextend -L +9G -f -r /dev/mapper/vg51cto-lv_homeExtending logical volume lv_home to 14.00 GiBLogical volume lv_home successfully resized resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/vg51cto-lv_homeis mounted on /home; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of/dev/mapper/vg51cto-lv_home to 3670016 (4k) blocks. The filesystem on/dev/mapper/vg51cto-lv_home is now 3670016 blocks long.
4)查看分区是否增加成功。
五、LVM 在线扩容
服务器磁盘空间不足,添加新的硬盘后,需要把空间添加当前分区当中。
linux中SCSI的第1个硬盘/dev/sda,第2个硬盘/dev/sdb依此类推。其中服务器第一块硬盘/dev/sda已经划分为LVM分区。/dev/sdb是新加的硬盘。
1) 用pvcreate /dev/sdb命令初始化分区sdb为物理卷(PV)。
[root@hadoop01 ~]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created
2)pvdisplay命令显示物理卷的信息
[root@hadoop01 ~]# pvdisplay---Physical volume ---PVName /dev/sda2VGName vg51ctoPVSize 59.80 GiB / not usable3.00 MiBAllocatable yes (butfull)PESize 4.00 MiBTotal PE 15309Free PE 0Allocated PE 15309PVUUID pKC6SA-fkfe-OAl2-scVr-tq0h-EAXD-AWpwgX"/dev/sdb" is a new physical volume of "40.00 GiB"---NEW Physical volume ---PVName /dev/sdbVGName PVSize 40.00 GiBAllocatable NOPESize 0 Total PE 0Free PE 0Allocated PE 0PVUUID dMeOLS-Sks3-8k3q-pVWp-Iuz2-0Hh2-8njjhY
3)vgextend命令将pv加入到vg,vgcreate命令为新创建vg(vgcreate vg51cto /dev/sdb),这里的vg51cto已经存在,只需要用vgextend加入即可。
[root@hadoop01 ~]# vgextend vg51cto/dev/sdbVolume group "vg51cto" successfully extended
4)用vgdisplay命令查看vg信息,看到已经有40G空闲PE。
5)lvextend命令扩展分区,将40G空间全部添加到/data分区。
直接增加40G空间不足,报下面的错误,因此添加39.9G的空间。
Insufficient free space:10240 extents needed, but only 10239 available
[root@hadoop01 ~]# lvextend -L +39.99G/dev/mapper/vg51cto-lv_dataRounding size to boundary between physical extents: 39.99 GiBExtending logical volume lv_data to 50.99 GiBLogicalvolume lv_data successfully resized
6)上一步操作只是增加了逻辑卷的大小,用resize2fs命令重新定义文件系统的大小。
[root@hadoop01 ~]# resize2fs /dev/mapper/vg51cto-lv_data resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/vg51cto-lv_datais mounted on /data; on-line resizing required old desc_blocks = 1, new_desc_blocks = 4 Performing an on-line resize of/dev/mapper/vg51cto-lv_data to 13367296 (4k) blocks. The filesystem on/dev/mapper/vg51cto-lv_data is now 13367296 blocks long.
7)查看磁盘在线扩容是否正常。
总结:
1)/分区不能umount,说明/分区只能扩容,不能减少/分区的空间。
2)减少分区的时候需要卸载分区,进行umount操作。
3)扩容的分区的时候不需要卸载分区。
4)重命名vg,lv命名后,需要修改/etc/fstab和/etc/grub.conf引导文件。
转载于:https://blog.51cto.com/sfzhang88/1710059
CentOS 6.5 LVM磁盘管理学习笔记相关推荐
- sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署、故障转移群集与日志传送
sqlserver 2012实施与管理学习笔记(一):选型和部署之单机部署.故障转移群集与日志传送 数据库的选型和部署 sqlserver的安装和升级 选择高可用性和灾难恢复技术 故障转移群集 日志传 ...
- 郝健: Linux内存管理学习笔记-第5节课
前序文章: 郝健: Linux内存管理学习笔记-第1节课 郝健: Linux内存管理学习笔记-第2节课 郝健: Linux内存管理学习笔记-第3节课 郝健: Linux内存管理学习笔记-第4节课 摘要 ...
- 郝健: Linux内存管理学习笔记-第6节课
前序文章: 郝健: Linux内存管理学习笔记-第1节课 郝健: Linux内存管理学习笔记-第2节课 郝健: Linux内存管理学习笔记-第3节课 郝健: Linux内存管理学习笔记-第4节课 郝健 ...
- 郝健: Linux内存管理学习笔记-第4节课
前序文章: 郝健: Linux内存管理学习笔记-第1节课 郝健: Linux内存管理学习笔记-第2节课 郝健: Linux内存管理学习笔记-第3节课 摘要 page cache free命令的详细解释 ...
- DB2 UDB V8.1 管理 学习笔记
DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...
- Windows内存管理学习笔记(三)—— 无处不在的缺页异常
Windows内存管理学习笔记(三)-- 无处不在的缺页异常 缺页异常 实验一:设置虚拟内存 无处不在的缺页 位于页面文件 保留与提交的误区 实验二:理解缺页异常 EXECUTE_WRITECOPY ...
- Windows内存管理学习笔记(二)—— 物理内存的管理
Windows内存管理学习笔记(二)-- 物理内存的管理 物理内存 实验一:理解MmNumberOfPhysicalPages MmPfnDatabase _MMPFN 物理页状态 六个链表 实验二: ...
- Windows内存管理学习笔记(一)—— 线性地址的管理
Windows内存管理学习笔记(一)-- 线性地址的管理 用户空间线性地址的管理 实验一:理解用户空间线性地址管理 Private Memory 实验二:理解Private Memory 堆 实验三: ...
- RAID磁盘阵列和LVM磁盘管理
RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列.简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一 ...
最新文章
- Navicat For Mysql快捷键
- 这个开源项目...看了就停不下来啊!
- Android常用权限
- 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)
- 使用MVCPager做AJAX分页所需要注意的地方
- php在数据库中上传图片格式,如何上传图片并在php中保存数据库中的URL
- jq之mouseleave()
- 算法高级(41)-推荐算法实现
- DropDMG for Mac(dmg打包软件)
- linux切换机器ssh命令,linux – 如何编写一个bash shell脚本来ssh到远程机器并更改用户并导出一个env变量并执行其他命令...
- Qt编写自定义控件属性设计器
- android7.0电话录音,芒果录音手机版-芒果通话录音app(电话通话录音软件)下载7.3.2官方安卓版-西西软件下载...
- python 知乎 sklearn_最全知乎专栏合集:编程、python、爬虫、数据分析、挖掘、ML、NLP、DL......
- simulink教程(自动控制原理)
- Photoshop将图片转为RGB颜色模式 您还不会吗?
- 服务器自带的ftp报错505,使用Delphi带的FTP控件删除服务器上的文件,该文件正在被使用(ASF格式影片,正在被点播)(100分)...
- win10打开任务管理器的快捷键
- python之路——进程
- 4.1 用格雷戈里公式求π的近似值
- 720全景展示是什么?全景展示有什么用?