使用Linux好久了,一定会意识到一个问题,某个分区容量不够用了,想要扩容怎么办?这里就涉及到LVM逻辑卷的管理了,可以动态调整Linux分区容量。

LVM 概述#

全称Logical Volume Manager,可以动态调整磁盘容量,提高磁盘管理灵活性。

在安装LVM的方案安装的系统。

但是/boot分区必须独立出来,不能基于LVM创建。

PV 物理卷#

物理卷,Physical Volume,是LVM机制的基本存储设备,通常对应一个普通分区或是整个硬盘。

创建物理卷时,会在分区或磁盘头部创建一个用于记录LVM属性的保留区块,并把存储空间分割成默认大小为4MB的基本单元(Physical Extend,PE),从而构成物理卷。

普通分区先转换分区类型为8e;整块硬盘,可以将所有的空间划分为一个主分区再做调整。

VG 卷组#

卷组,Volume Group,是由一个或多个物理卷组成的一个整体。可以动态添加、移除物理卷,创建时可以指定PE大小。

LV 逻辑卷#

逻辑卷,Logical Volume,建立在卷组之上,与物理卷没有直接关系。格式化后,即可挂载使用。

三者关系#

通过以上对三者的解释可以看出,建立LVM的过程。首先,将普通分区或整个硬盘创建为物理卷;然后,将一个或多个物理卷创建为卷组;最后,在卷组上分割不同的数据存储空间形成逻辑卷。有了逻辑卷,就可以格式化、挂载使用了。

LVM 管理#

LVM 常用命令#

功能PV 管理命令VG 管理命令LV 管理命令

Scan(扫描)

pvscan

vgscan

lvscan

Create(建立)

pvcreate

vgcreate

lvcreate

Display(显示)

pvdisplay

vgdisplay

lvdisplay

Remove(移除)

pvremove

vgremove

lvremove

Extend(扩展)

/

vgextend

lvextend

Reduce(减少)

/

vgreduce

lvreduce

PV 管理#

pvsacn#

扫描列出系统中所有的物理卷

-e:仅显示属于输出卷组的物理卷

-n:仅显示不属于任何卷组的物理卷

[root@localhost ~]# pvscan

PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]

PV /dev/sdb1 lvm2 [<20.00 GiB]

PV /dev/sdc1 lvm2 [<20.00 GiB]

Total: 3 [58.99 GiB] / in use: 1 [<19.00 GiB] / in no VG: 2 [<40.00 GiB]

pvcreate#

将分区或整个硬盘转换成物理卷

[root@localhost ~]# pvcreate /dev/sd{b,c}1

Physical volume "/dev/sdb1" successfully created.

Physical volume "/dev/sdc1" successfully created.

pvdisplay#

显示物理卷的详细信息

[root@localhost ~]# pvdisplay

--- Physical volume ---

PV Name /dev/sda2

VG Name centos

PV Size <19.00 GiB / not usable 3.00 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 4863

Free PE 0

Allocated PE 4863

PV UUID E4eovQ-CgPo-OSDK-75MO-BfD8-pGsP-BUlqip

"/dev/sdb1" is a new physical volume of "<20.00 GiB"

--- NEW Physical volume ---

PV Name /dev/sdb1

VG Name

PV Size <20.00 GiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID gR5mm3-f50o-XLTq-34GY-n6Iz-WXkQ-uMZAkJ

"/dev/sdc1" is a new physical volume of "<20.00 GiB"

--- NEW Physical volume ---

PV Name /dev/sdc1

VG Name

PV Size <20.00 GiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID O2gKxa-ONts-kyXK-zZrO-3dDg-FhtI-V6GPy9

pvremove#

删除指定的物理卷,还原成普通分区或磁盘

TIPS:只有不属于卷组的物理卷才可以删除还原。

[root@localhost ~]# pvremove /dev/sdd1

Labels on physical volume "/dev/sdd1" successfully wiped.

VG 管理#

vgscan#

扫描系统中已建立的LVM卷组

[root@localhost ~]# vgscan

Reading volume groups from cache.

Found volume group "class" using metadata type lvm2

Found volume group "centos" using metadata type lvm2

vgcreate#

将一个或多个物理卷创建为一个卷组

-l:卷组上允许创建的最大逻辑卷数

-p:卷组中允许添加的最大物理卷数

-s:卷组上的物理卷的PE大小

[root@localhost ~]# vgcreate class /dev/sd{b,c}1

Volume group "class" successfully created

vgdisplay#

显示系统中各卷组的详细信息

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name class

System ID

Format lvm2

Metadata Areas 2

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 2

Act PV 2

VG Size 39.99 GiB

PE Size 4.00 MiB

Total PE 10238

Alloc PE / Size 0 / 0

Free PE / Size 10238 / 39.99 GiB

VG UUID ZtQvGX-YOdy-U8wj-mGQs-TT1e-1PBR-dBNKAG

--- Volume group ---

VG Name centos

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 3

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 2

Open LV 2

Max PV 0

Cur PV 1

Act PV 1

VG Size <19.00 GiB

PE Size 4.00 MiB

Total PE 4863

Alloc PE / Size 4863 / <19.00 GiB

Free PE / Size 0 / 0

VG UUID bLPJGb-SQQ3-KcUb-OSdo-qaMR-9hJE-MTkc7a

vgremove#

删除指定的卷组

TIPS:卷组下面的逻辑卷没有被挂载使用,卷组删除时会一并删除下面的逻辑卷。

[root@localhost ~]# vgremove class

Volume group "class" successfully removed

vgextend#

添加新的物理卷,动态扩展卷组的磁盘空间

[root@localhost ~]# vgextend class /dev/sdd1

Volume group "class" successfully extended

vgreduce#

删除卷组中的物理卷,减少卷组容量,

-a:如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷。(all)

TIPS:删除啊前确保对应的物理卷没有在使用,就是下面没有逻辑卷,否则删除不了。

[root@localhost ~]# vgreduce class /dev/sdd1

Removed "/dev/sdd1" from volume group "class"

[root@localhost ~]# vgreduce -a class

Physical volume "/dev/sdb1" still in use

Physical volume "/dev/sdc1" still in use

Removed "/dev/sdd1" from volume group "class"

LV 管理#

lvscan#

扫描系统中已建立的LVM逻辑卷

[root@localhost ~]# lvscan

ACTIVE '/dev/class/stu01' [25.00 GiB] inherit

ACTIVE '/dev/class/stu02' [14.99 GiB] inherit

ACTIVE '/dev/centos/swap' [2.00 GiB] inherit

ACTIVE '/dev/centos/root' [<17.00 GiB] inherit

lvcreate#

从指定的卷组中分割空间,创建新的逻辑卷

-L:指定逻辑卷的大小,单位为KMGT

-l:指定百分比创建,如50%vg卷组的一半空间、100%free所有剩下的。

-n:指定逻辑卷的名称

[root@localhost ~]# lvcreate -L 15G -n stu01 class

Logical volume "stu01" created.

[root@localhost ~]# lvcreate -l 100%free -n stu02 class

Logical volume "stu02" created.

lvdisplay#

显示逻辑卷的详细信息

[root@localhost ~]# lvdisplay

--- Logical volume ---

LV Path /dev/class/stu01

LV Name stu01

VG Name class

LV UUID XUP7dq-IM9f-PdKk-XpDH-J1hx-kkuB-cOu3Qx

LV Write Access read/write

LV Creation host, time localhost.localdomain, 2019-08-24 09:42:35 +0800

LV Status available

# open 0

LV Size 25.00 GiB

Current LE 6400

Segments 2

Allocation inherit

Read ahead sectors auto

- currently set to 8192

Block device 253:2

--- Logical volume ---

LV Path /dev/class/stu02

LV Name stu02

VG Name class

LV UUID P7iMC1-X0oT-6TCH-vLYj-HW2j-6QMu-rS7Jyp

LV Write Access read/write

LV Creation host, time localhost.localdomain, 2019-08-24 09:59:30 +0800

LV Status available

# open 0

LV Size 14.99 GiB

Current LE 3838

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 8192

Block device 253:3

--- Logical volume ---

LV Path /dev/centos/swap

LV Name swap

VG Name centos

LV UUID NXiaXT-T6yv-ktM2-plyS-j6Hg-hkvu-1JQ2eL

LV Write Access read/write

LV Creation host, time localhost, 2019-08-16 17:12:19 +0800

LV Status available

# open 2

LV Size 2.00 GiB

Current LE 512

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 8192

Block device 253:1

--- Logical volume ---

LV Path /dev/centos/root

LV Name root

VG Name centos

LV UUID 7FnsfT-B8xi-3vgu-8N0k-nzNn-8Rra-eoE4iC

LV Write Access read/write

LV Creation host, time localhost, 2019-08-16 17:12:19 +0800

LV Status available

# open 1

LV Size <17.00 GiB

Current LE 4351

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 8192

Block device 253:0

lvremove#

删除指定的逻辑卷

TIPS:备份数据,解挂载,删除。

[root@localhost ~]# umount /mnt/stu02/

[root@localhost ~]# lvremove /dev/class/stu02

lvextend#

动态扩展LVM逻辑卷的空间大小

-L:指定扩展逻辑卷的大小,单位为KMGT

-l:指定百分比扩建,如100%free所有剩下的。

[root@localhost ~]# lvextend -L +8G /dev/class/stu01

[root@localhost ~]# lvextend -L +8G /dev/class/stu02

TIPS:已挂载,使用在线调整大小,xfs使用xfs_growfs,ext4使用resize2fs。

[root@localhost ~]# xfs_growfs /dev/class/stu01

[root@localhost ~]# resize2fs /dev/class/stu02

lvreduce#

减少LVM逻辑卷的空间大小,

-L:指定逻辑卷的大小,单位为KMGT

TIPS:对于xfs文件系统,备份数据,解挂载,减少空间,强制格式化,重新挂载。需要注意xfs文件系统只能扩大,不能缩小,非要缩小的话,只有缩小后并强制格式化,但这么做数据就丢失了。

[root@localhost ~]# umount /mnt/stu01/

[root@localhost ~]# lvreduce -L -10G /dev/class/stu01

[root@localhost ~]# mkfs.xfs -f /dev/class/stu01

[root@localhost ~]# mount -a

[root@localhost ~]# df -hT

TIPS:对于ext4这类文件系统,备份数据,解挂载,e2fsck -f检查文件系统完整性,resize2fs设置文件系统大小,lvreduce设置逻辑卷大小,重新挂载。

[root@localhost ~]# umount /mnt/stu02/

[root@localhost ~]# e2fsck -f /dev/class/stu02

[root@localhost ~]# resize2fs /dev/class/stu02 10G

[root@localhost ~]# lvreduce -L 10G /dev/class/stu02

[root@localhost ~]# mount -a

[root@localhost ~]# df -hT

LVM 实验#

创建 LVM 逻辑卷#

1.添加两块20G的磁盘,重启机器,并对其进行分区,全部空间分为一个主分区,类型改为Linux LVM,ID为8e。分区过程省略,不清楚可参考上一篇博客。

[root@localhost ~]# fdisk -l /dev/sd{b,c} | grep -i "linux lvm"

/dev/sdb1 2048 41943039 20970496 8e Linux LVM

/dev/sdc1 2048 41943039 20970496 8e Linux LVM

2.将/dev/sdb1、/dev/sdc1转换为物理卷。

[root@localhost ~]# pvcreate /dev/sd{b,c}1

Physical volume "/dev/sdb1" successfully created.

Physical volume "/dev/sdc1" successfully created.

3.创建名称为class的卷组,并将sdb1和sdc1添加进卷组。

[root@localhost ~]# vgcreate class /dev/sd{b,c}1

Volume group "class" successfully created

4.划分大小为15G,名称为stu01的逻辑卷,然后再扩容10G;剩下的空间创建名称为stu02的逻辑卷。

[root@localhost ~]# lvcreate -L 15G -n stu01 class

Logical volume "stu01" created.

[root@localhost ~]# lvextend -L +10G /dev/class/stu01

Size of logical volume class/stu01 changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).

Logical volume class/stu01 successfully resized.

[root@localhost ~]# lvcreate -l 100%free -n stu02 class

Logical volume "stu02" created.

5.格式化逻辑卷,stu01为xfs,stu02为ext4,设置自动挂载,挂载后就可以使用了。

[root@localhost ~]# mkfs.xfs /dev/class/stu01

meta-data=/dev/class/stu01 isize=512 agcount=4, agsize=1638400 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=6553600, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal log bsize=4096 blocks=3200, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

[root@localhost ~]# mkfs.ext4 /dev/class/stu02

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

983040 inodes, 3930112 blocks

196505 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2151677952

120 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

[root@localhost ~]# mkdir /mnt/stu0{1,2}

[root@localhost ~]# vim /etc/fstab

//最后面添加下面两行内容

/dev/class/stu01 /mnt/stu01 xfs defaults 0 0

/dev/class/stu02 /mnt/stu02 ext4 defaults 0 0

[root@localhost ~]# mount -a

[root@localhost ~]# df -hT

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/centos-root xfs 17G 927M 17G 6% /

devtmpfs devtmpfs 901M 0 901M 0% /dev

tmpfs tmpfs 912M 0 912M 0% /dev/shm

tmpfs tmpfs 912M 8.7M 904M 1% /run

tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup

/dev/sda1 xfs 1014M 143M 872M 15% /boot

tmpfs tmpfs 183M 0 183M 0% /run/user/0

/dev/mapper/class-stu01 xfs 25G 33M 25G 1% /mnt/stu01

/dev/mapper/class-stu02 ext4 15G 41M 14G 1% /mnt/stu02

扩容 LVM 逻辑卷#

1.再添加一块20G的磁盘,重启机器,并对其进行分区,全部空间分为一个主分区,类型改为Linux LVM,ID为8e。

[root@localhost ~]# fdisk -l /dev/sd{b..d} | grep -i "linux lvm"

/dev/sdb1 2048 41943039 20970496 8e Linux LVM

/dev/sdc1 2048 41943039 20970496 8e Linux LVM

/dev/sdd1 2048 41943039 20970496 8e Linux LVM

2.将/dev/sdd1转换为物理卷。

[root@localhost ~]# pvcreate /dev/sdd1

Physical volume "/dev/sdd1" successfully created.

3.若是卷组剩余空间不够,就要先对class卷组进行扩容。

[root@localhost ~]# vgdisplay class

--- Volume group ---

VG Name class

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 6

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 2

Open LV 2

Max PV 0

Cur PV 2

Act PV 2

VG Size 39.99 GiB

PE Size 4.00 MiB

Total PE 10238

Alloc PE / Size 10238 / 39.99 GiB

Free PE / Size 0 / 0

VG UUID iB1h9h-2uQa-rD7o-GBVK-pOCA-ek2c-TXieLr

[root@localhost ~]# vgextend class /dev/sdd1

Volume group "class" successfully extended

[root@localhost ~]# vgdisplay class

--- Volume group ---

VG Name class

System ID

Format lvm2

Metadata Areas 3

Metadata Sequence No 7

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 2

Open LV 2

Max PV 0

Cur PV 3

Act PV 3

VG Size <59.99 GiB

PE Size 4.00 MiB

Total PE 15357

Alloc PE / Size 10238 / 39.99 GiB

Free PE / Size 5119 / <20.00 GiB

VG UUID iB1h9h-2uQa-rD7o-GBVK-pOCA-ek2c-TXieLr

4.对stu01和stu02都扩容8G,分别使用xfs_growfs和resize2fs在线调整大小。

[root@localhost ~]# lvextend -L +8G /dev/class/stu01

Size of logical volume class/stu01 changed from 25.00 GiB (6400 extents) to 33.00 GiB (8448 extents).

Logical volume class/stu01 successfully resized.

[root@localhost ~]# lvextend -L +8G /dev/class/stu02

Size of logical volume class/stu02 changed from 14.99 GiB (3838 extents) to 22.99 GiB (5886 extents).

Logical volume class/stu02 successfully resized.

[root@localhost ~]# xfs_growfs /dev/class/stu01

meta-data=/dev/mapper/class-stu01 isize=512 agcount=4, agsize=1638400 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=6553600, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=3200, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 6553600 to 8650752

[root@localhost ~]# resize2fs /dev/class/stu02

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/class/stu02 is mounted on /mnt/stu02; on-line resizing required

old_desc_blocks = 2, new_desc_blocks = 3

The filesystem on /dev/class/stu02 is now 6027264 blocks long.

[root@localhost ~]# df -hT

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/centos-root xfs 17G 927M 17G 6% /

devtmpfs devtmpfs 901M 0 901M 0% /dev

tmpfs tmpfs 912M 0 912M 0% /dev/shm

tmpfs tmpfs 912M 8.7M 903M 1% /run

tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup

/dev/sda1 xfs 1014M 143M 872M 15% /boot

/dev/mapper/class-stu01 xfs 33G 33M 33G 1% /mnt/stu01

/dev/mapper/class-stu02 ext4 23G 44M 22G 1% /mnt/stu02

tmpfs tmpfs 183M 0 183M 0% /run/user/0

收缩 LVM 逻辑卷#

关于收缩 LVM 逻辑卷,可以参考上面的命令lvreduce。这会涉及到数据安全性问题,谨慎使用。

总结#

内容不多,但是还要实际操作才能了解。就是三步走,创建物理卷,创建卷组,创建逻辑卷,然后格式化并挂载使用。扩容的话,没有挂载使用,就正常扩,然后格式化挂载,已经挂载使用了,扩容后在线调整生效。还有下一篇关于磁盘配额。

Linux格式化逻辑卷的命令,Linux LVM逻辑卷管理相关推荐

  1. linux启动网络服务的命令,linux重启服务命令

    linux重启服务命令 重启:service 服务名 restart 或systemctl restart 服务名 service和systemctl 1.service命令 service命令其实是 ...

  2. linux添加源ip路由命令,linux添加ip、路由相关命令

    1- Linux添加永久路由 vi /etc/sysconfig/network-scripts/route-eth1 ADDRESS0=192.168.10.0 NETMASK0=255.255.2 ...

  3. linux文件系统与磁盘(三)LVM逻辑卷管理

    前言 LVM(Logic Volume Manager,逻辑卷管理),是Linux管理磁盘的一种方式.在Windows及其他操作系统当中,也有类似的管理方式. 一.基本概念 1.何为逻辑卷管理LVM ...

  4. Linux如何查看LV的容量情况,LVM 逻辑卷管理器-增大LV容量

    LVM 逻辑卷管理器-增大LV的容量 步骤: (1)新增一个8e systemID的分区: (2)用pvcreate命令构建PV: (3)用vgextend命令将PV加入vg_1: (4)用lvres ...

  5. Linux系统格式化分区用哪个命令,linux系统格式化分区的命令是什么

    linux系统格式化分区的命令是什么 发布时间:2020-04-21 11:19:16 来源:亿速云 阅读:486 作者:小新 本文在介绍关于linux系统格式化分区的命令是什么,重点探讨了其具体步骤 ...

  6. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...

    linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找 ...

  7. linux 设置开机自启动服务命令,linux开机自启动服务优化设置命令

    1.设置成英文字符,避免出现乱码 [root@xuegod62 ~]# LANG=en 2.两种配置linux开机自启动服务命令: 1) [root@xuegod62 ~]# ntsysv 2) [r ...

  8. linux防火墙开放所有端口命令,linux centos7 防火墙及端口开放相关命令

    一.防火墙相关命令 1.查看防火墙状态 : systemctl status firewalld.service 注:active是绿的running表示防火墙开启 2.关闭防火墙 :systemct ...

  9. linux上传文件权限命令,Linux 普通用户拿到root权限及使用szrz命令上传下载文件...

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  10. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

最新文章

  1. MySQL基础篇:数据定义语言DDL
  2. Golang + vscode 开发环境配置
  3. 程序员们,今天就让她陪你们放松一下吧。她还有大宝剑哦。【原创】
  4. UIBezierPath的使用(持续更新)
  5. ubuntu-14.04.2-desktop-i386.iso:ubuntu-14.04.2-desktop-i386:安装Oracle11gR2
  6. python是外部还是编程_Python网络编程(绑定到外部地址)
  7. 研华数据采集卡如何采集压力信号转化为数字信号_涨知识啦!PLC编程中如何使用开关、模拟、脉冲量...
  8. 【云栖大会】与马云一起开启“飞天·进化”之旅
  9. SQL SERVER 2005 数据挖掘与商业智能完全解决方案---学习笔记(二)
  10. 红帽linux系统解压,linux redhat 红帽 centos 压缩 解压缩
  11. 推荐几款好用的去视频水印软件,快来看看吧
  12. 《android开发艺术探索》笔记
  13. Python绘制中国地图
  14. 北京林业大学计算机考研录取分数线,2017北京林业大学各专业考研复试分数线...
  15. 软件测试工程师的职业技能分析
  16. i3 8100安装服务器系统,i38100安装win7纯净版的图文教程
  17. [BJDCTF 2nd]燕言燕语-y1ng解析
  18. ​包载紫杉醇的tpgs还原性白蛋白纳米粒/GA-HSA 藤黄酸人血清蛋白纳米粒​
  19. js算法判断是否为素数
  20. IOS 隐私政策网址 URL MG

热门文章

  1. 算法讲解 -- 莫队算法
  2. 计算机CPU高端产品,英特尔酷睿处理器哪个型号好?电脑CPU性能排名
  3. 手机内存卡照片丢失怎么恢复
  4. 西游记中孙悟空大闹天宫时期被孙悟空打败的
  5. 一个index.html怎么添加备案号,ICP备案号怎么添加到自己网页底部?
  6. 分布式监控系统——Zabbix(2)部署
  7. jeecg-boot环境搭建
  8. 毕业设计 基于51单片机老人防跌倒GSM短信报警系统
  9. “男朋友送了我一瓶才100多块的香水”
  10. 磁耦隔离与传统隔离的区别