CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的。

1、为什么会有逻辑卷管理

传统磁盘管理是直接对硬盘分区进行访问,你如果磁盘不够了,再加一块硬盘,然后分区格式化,系统和应用直接对分区后的硬盘直接访问。

这个访问是独立,脱离原有目录系统的,比如在windows系统里经常出现C盘不够了,当时分区没想到windows会如此臃肿,要解决这个问题,

只能重新挂硬盘,借助第三方软件来动态的、非在线式的调整,而且,非常慢。

而LVM逻辑卷管理,可以动态的、实时的实现这个过程,非常快。LVM能做到这点,是LVM在磁盘上抽象了一层管理系统,系统和应用已经不

直接访问磁盘,而是访问这个抽象层,也就是LVM里的逻辑卷。

2、常用的LVM命令

 
  物理卷  
  卷组     逻辑卷  
  扫描     pvscan(pvs)     vgscan(vgs)     lvscan(lvs)  
  创建   pvcreate   vgcreate   lvcreate
  显示   pvdisplay   vgdisplay   lvdisplay
  删除   pvremove   vgremove   lvremove
  扩展     vgextend   lvextend
  缩减     vgreduce   lvreduce

3、逻辑卷示例

3.1、创建物理卷

查看目前物理卷
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0 查看目前磁盘情况,这个命令比较多,这里用lsblk直观一些
[root@bigdata-senior01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 32G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /backup
├─sdb2 8:18 0 3G 0 part [SWAP]
└─sdb3 8:19 0 15G 0 part
└─centos-root 253:0 0 32G 0 lvm /
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk
sde 8:64 0 1G 0 disk
sdf 8:80 0 1G 0 disk
sdg 8:96 0 1G 0 disk
sr0 11:0 1 4.2G 0 rom 把sdc,sdd,sde三个磁盘都创建成物理卷
[root@bigdata-senior01 ~]# pvcreate /dev/sdc /dev/sdd /dev/sde
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created. [root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc lvm2 --- 1.00g 1.00g
/dev/sdd lvm2 --- 1.00g 1.00g
/dev/sde lvm2 --- 1.00g 1.00g

3.2、创建新卷组esdata

查看目前卷组情况
[root@bigdata-senior01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0 创建esdata卷组
[root@bigdata-senior01 ~]# vgcreate esdata /dev/sdc /dev/sdd /dev/sde
Volume group "esdata" successfully created 再次查看
[root@bigdata-senior01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0
esdata 3 0 0 wz--n- <2.99g <2.99g

3.3、创建逻辑卷,800M大小

[root@bigdata-senior01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 31.99g
swap centos -wi-ao---- 2.00g 从esdata上创建名字为vo_esData的逻辑卷,800M
[root@bigdata-senior01 ~]# lvcreate -n vo_esData -L 800M esdata
Logical volume "vo_esData" created. [root@bigdata-senior01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 31.99g
swap centos -wi-ao---- 2.00g
vo_esData esdata -wi-a----- 800.00m

3.4、格式化逻辑卷vo_esData

查看逻辑卷路径
[root@bigdata-senior01 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/esdata/vo_esData
LV Name vo_esData
VG Name esdata
LV UUID tMu3LD-Xxyy-10b4-Nbvn-SFe9-hn9W-kdFlDV
LV Write Access read/write
LV Creation host, time bigdata-senior01.home.com, 2019-01-17 15:39:59 +0800
LV Status available
# open 0
LV Size 800.00 MiB
Current LE 200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2

格式化成ext4格式,为啥不是xfs格式?因为xfs缩减不方便
[root@bigdata-senior01 ~]# mkfs.ext4 /dev/esdata/vo_esData
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
51296 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
7328 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840 Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

3.5、挂载

[root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
[root@bigdata-senior01 /]# ls /mnt/esdata
lost+found
[root@bigdata-senior01 /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 32G 4.2G 28G 13% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
/dev/sdb1 2.0G 67M 2.0G 4% /backup
tmpfs 183M 0 183M 0% /run/user/1004
/dev/mapper/esdata-vo_esData 772M 1.6M 714M 1% /mnt/esdata

3.6、扩展逻辑卷,把刚才创建的800M的逻辑卷扩展到1.5G,只要卷组里还有足够的资源,就可以扩展逻辑卷。

如果卷组的空间不够,还可以再加硬盘创建物理卷,然后,把物理卷加入到对应的卷组里,保证卷组的资源。

[root@bigdata-senior01 /]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0
esdata 3 1 0 wz--n- <2.99g <2.21g #卷组还有2.21GB的空间可用 [root@bigdata-senior01 /]# vgdisplay
--- Volume group ---
VG Name esdata
System ID
Format lvm2
Metadata Areas 3
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 3
Act PV 3
VG Size <2.99 GiB
PE Size 4.00 MiB
Total PE 765
Alloc PE / Size 200 / 800.00 MiB
Free PE / Size 565 / <2.21 GiB #卷组还有2.21GB的空间可用
VG UUID HhfZYk-xAbw-oYGP-S2bc-r53K-CxUO-ds2NUi [root@bigdata-senior01 /]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 31.99g
swap centos -wi-ao---- 2.00g
vo_esData esdata -wi-ao---- 800.00m
[root@bigdata-senior01 /]# lvextend -L 1.5G /dev/esdata/vo_esData
Size of logical volume esdata/vo_esData changed from 800.00 MiB (200 extents) to 1.50 GiB (384 extents).
Logical volume esdata/vo_esData successfully resized.
[root@bigdata-senior01 /]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 31.99g
swap centos -wi-ao---- 2.00g
vo_esData esdata -wi-ao---- 1.50g [root@bigdata-senior01 /]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0
esdata 3 1 0 wz--n- <2.99g <1.49g 卸载设备,然后才能拉伸文件系统容量
[root@bigdata-senior01 /]# umount /dev/esdata/vo_esData
[root@bigdata-senior01 /]# e2fsck /dev/esdata/vo_esData
e2fsck 1.42.9 (28-Dec-2013)
/dev/esdata/vo_esData: clean, 11/51296 files, 7726/204800 blocks
[root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/esdata/vo_esData'. [root@bigdata-senior01 /]# e2fsck -f /dev/esdata/vo_esData
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/esdata/vo_esData: 11/51296 files (0.0% non-contiguous), 7726/204800 blocks
[root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/esdata/vo_esData to 393216 (4k) blocks.
The filesystem on /dev/esdata/vo_esData is now 393216 blocks long. [root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
[root@bigdata-senior01 /]# df -h
文件系统                      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root        32G  4.2G   28G   13% /
devtmpfs                      901M     0  901M    0% /dev
tmpfs                         912M     0  912M    0% /dev/shm
tmpfs                         912M  8.6M  904M    1% /run
tmpfs                         912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                    1014M  143M  872M   15% /boot
/dev/sdb1                     2.0G   67M  2.0G    4% /backup
tmpfs                         183M     0  183M    0% /run/user/1004
/dev/mapper/esdata-vo_esData  1.5G  2.4M  1.4G    1% /mnt/esdata

3.7、缩小逻辑卷容量

[root@bigdata-senior01 ~]# umount /dev/esdata/vo_esData

[root@bigdata-senior01 ~]# e2fsck -f /dev/esdata/vo_esData
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/esdata/vo_esData: 11/87936 files (0.0% non-contiguous), 10228/393216 blocks #减少文件系统到1G左右
[root@bigdata-senior01 ~]# resize2fs /dev/esdata/vo_esData 1G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/esdata/vo_esData to 262144 (4k) blocks.
The filesystem on /dev/esdata/vo_esData is now 262144 blocks long. #减少逻辑卷到1G,可能会损坏数据
[root@bigdata-senior01 ~]# lvreduce -L 1G /dev/esdata/vo_esData
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce esdata/vo_esData? [y/n]: y
Size of logical volume esdata/vo_esData changed from 1.50 GiB (384 extents) to 1.00 GiB (256 extents).
Logical volume esdata/vo_esData successfully resized. [root@bigdata-senior01 ~]# mount /dev/esdata/vo_esData /mnt/esdata
[root@bigdata-senior01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 32G 4.2G 28G 13% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
/dev/sdb1 2.0G 67M 2.0G 4% /backup
tmpfs 183M 0 183M 0% /run/user/1004
/dev/mapper/esdata-vo_esData 994M 2.0M 925M 1% /mnt/esdata

3.8、逻辑卷里硬盘出问题怎么办?假设上例的/dev/sdc磁盘出现问题,如何处理?

先查看物理卷情况,/dev/sdc损坏的盘有数据,需要先把数据迁移
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc esdata lvm2 a-- 1020.00m 0
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 1020.00m 迁移/dev/sdc数据到/dev/sde,确保目标盘空间够用
[root@bigdata-senior01 ~]# pvmove /dev/sdc /dev/sde
/dev/sdc: Moved: 1.18%
/dev/sdc: Moved: 100.00% 迁移完成
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc esdata lvm2 a-- 1020.00m 1020.00m
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 0 从卷组esdata里移除 /dev/sdc
[root@bigdata-senior01 ~]# vgreduce esdata /dev/sdc
Removed "/dev/sdc" from volume group "esdata"
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc lvm2 --- 1.00g 1.00g
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 0
[root@bigdata-senior01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0
esdata 2 1 0 wz--n- 1.99g 1016.00m 移除物理卷/dev/sdc
[root@bigdata-senior01 ~]# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 0

3.9、修复的硬盘重新装回去(或者是一块新的,旧的已经安息)

[root@bigdata-senior01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 32G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /backup
├─sdb2 8:18 0 3G 0 part [SWAP]
└─sdb3 8:19 0 15G 0 part
└─centos-root 253:0 0 32G 0 lvm /
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk
└─esdata-vo_esData 253:2 0 1G 0 lvm /mnt/esdata
sde 8:64 0 1G 0 disk
└─esdata-vo_esData 253:2 0 1G 0 lvm /mnt/esdata
sdf 8:80 0 1G 0 disk
sdg 8:96 0 1G 0 disk
sr0 11:0 1 4.2G 0 rom 重新把/dev/sdc创建物理卷
[root@bigdata-senior01 ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
查看
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc lvm2 --- 1.00g 1.00g
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 0 扩充卷组esdata
[root@bigdata-senior01 ~]# vgextend esdata /dev/sdc
Volume group "esdata" successfully extended
[root@bigdata-senior01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 centos lvm2 a-- <15.00g 0
/dev/sdc esdata lvm2 a-- 1020.00m 1020.00m
/dev/sdd esdata lvm2 a-- 1020.00m 1016.00m
/dev/sde esdata lvm2 a-- 1020.00m 0
[root@bigdata-senior01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 33.99g 0
esdata 3 1 0 wz--n- <2.99g <1.99g 逻辑卷根本不知道底层的硬盘已经换了一块。

4.0、逻辑卷的磁盘需要分区标识吗?

磁盘不分区就可以创建物理卷,但是我们依然可以用fdisk对磁盘进行分区标识,LVM的分区标识是8e,打上标识后,磁盘要转成普通磁盘使用需要重新分区,这也算一个安全手段。
我们也可以把磁盘分区几个区后,对其中某几个区创建物理卷。

5、删除逻辑卷

[root@bigdata-senior01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 32G 4.2G 28G 13% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
/dev/sdb1 2.0G 67M 2.0G 4% /backup
tmpfs 183M 0 183M 0% /run/user/1004
/dev/mapper/esdata-vo_esData 994M 2.0M 925M 1% /mnt/esdata 其实 /dev/esdata/vo_esData和/dev/mapper/esdata-vo_esData都是链接文件
[root@bigdata-senior01 ~]# ll /dev/esdata/vo_esData
lrwxrwxrwx 1 root root 7 1月 17 17:18 /dev/esdata/vo_esData -> ../dm-2
[root@bigdata-senior01 ~]# ll /dev/mapper/esdata-vo_esData
lrwxrwxrwx 1 root root 7 1月 17 17:18 /dev/mapper/esdata-vo_esData -> ../dm-2

卸载文件系统
[root@bigdata-senior01 ~]# umount /dev/esdata/vo_esData

移除逻辑卷
[root@bigdata-senior01 ~]# lvremove /dev/esdata/vo_esData
Do you really want to remove active logical volume esdata/vo_esData? [y/n]: y
Logical volume "vo_esData" successfully removed 移除卷组
[root@bigdata-senior01 ~]# vgremove esdata
Volume group "esdata" successfully removed 移除物理卷
[root@bigdata-senior01 ~]# pvremove /dev/sdc /dev/sdd /dev/sde
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdd" successfully wiped.
Labels on physical volume "/dev/sde" successfully wiped.

CentOS LVM逻辑卷管理的更多相关文章

  1. CentOS下LVM逻辑卷管理技术解释

    1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...

  2. linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列

    磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...

  3. 18 LVM逻辑卷管理

    根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...

  4. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  5. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  6. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  7. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  8. Linux之LVM逻辑卷管理

    LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...

  9. CentOS 6.7 配置LVM (逻辑卷管理)

    LVM 简介 LVM是逻辑盘卷组管理 (Logical Volume Manager) 的简称. LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,在一定程度上解决普通磁盘分区带来 ...

随机推荐

  1. iOS性能调优工具

    总结: 三类工具 基础工具 (NSLog的方式记录运行时间.) 性能工具.检测各个部分的性能表现,找出性能瓶颈 内存工具.检查内存正确性和内存使用效率 性能工具: 可以衡量CPU的使用,时间的消耗,电 ...

  2. libevent学习六(Connect listeners )

      创建与释放 //backlog需要查询平台说明,在linux2.2以后 backlog就变成了已完成连接但未accept的队列的最大值(原来是处于syn状态的,现在换成sysctl 控制的参数tc ...

  3. python——一些常用的方法类

    测试的时候经常需要使用一些方法都整理放在一起,方便调用 首先一些基本的配置引入 localReadConfig = readConfig.ReadConfig() proDir = readConfi ...

  4. lintcode 平面列表

    问题描述: 给定一个列表,该列表中的每个要素要么是个列表,要么是整数.将其变成一个只包含整数的简单列表. 样例: 给定 [1,2,[1,2]],返回 [1,2,1,2]. 给定 [4,[3,[2,[1 ...

  5. jmeter使用复习

    多终端进程: 配置客户端远程的ip地址和port 在客户端jmeter安装目录的bin目录下,修改配置文件 jmeter.properties 默认的remote_hosts 的值:(将肉鸡的地址加入 ...

  6. LeetCode - 566. Reshape the Matrix (C++) O(n)

    1. 题目大意 根据给定矩阵,重塑一个矩阵,r是所求矩阵的行数,c是所求矩阵的列数.如果给定矩阵和所求矩阵的数据个数不一样,那么返回原矩阵.否则,重塑矩阵.其中两个矩阵中的数据顺序不变(先行后列). ...

  7. 关闭Tomcat进程 一条语句(必看)

    写在开始 MAC系统下进行JAVA研发,经常遇到的一个问题就是杀死异常Tomcat 通常都是用两条指令,先查询出Tomcat占用的进程,再kill掉该进程, 其实有一种联合语句的方式可以一条语句直接关 ...

  8. POJ 2631 Roads in the North(求树的直径,两次遍历 or 树DP)

    题目链接:http://poj.org/problem?id=2631 Description Building and maintaining roads among communities in ...

  9. 【转】redis安装与配置

    一.安装 1.官方:http://www.redis.cn/download.html 2.下载.解压.编译 wget http://download.redis.io/releases/redis- ...

  10. php+原生ajax实现图片文件上传功能实例

    html+js 代码 <!DOCTYPE html> <html> <head> <title>Html5 Ajax 上传文件</title> ...