LVM管理和ssm存储管理器使用-阿里云开发者社区

开发者社区> 给我一碗炒粉> 正文

LVM管理和ssm存储管理器使用

简介: LVM管理和ssm存储管理器使用
+关注继续查看
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅998元/3年,立即抢购>>>:9i0i.cn/aliyun

福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

LVM管理和ssm存储管理器使用

本次所学

1.1 LVM的工作原理

1.2 创建LVM的基本步骤

1.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池

LVM主要解决生产环境下存储数据的分区磁盘空间不够用了

使用LVM在线动态扩容

LVM的工作原理

LVM(Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过LVM可以直接扩展文件系统跨越磁盘

它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

LVM常用的术语

物理存储介质(The physical media):LVM存储介质可以是磁盘分区,整个磁盘,RAID阵列或SAN磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用 ?

物理卷PV(physical volume) :物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;

卷组VG(Volume Group) :一个LVM卷组由一个或多个物理卷组成 ?? ?

逻辑卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立文件系统

PE(physical extents) :PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB

LE(logical extent) : LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

最小存储单位总结:

名称 最小存储单位 ?

硬盘 扇区(512字节) ?

文件系统 block(1K或4K )# mkfs.ext4 -b 2048 /dev/sdb1 ,最大支持到4096 ?

raid chunk (512K) #mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x 1 /dev/sde{1,2,3,5}

LVM PE (4M) # vgcreate -s 4M vg1 /dev/sdb{1,2}

LVM主要元素构成:

?

总结:多个磁盘/分区/raid-》多个物理卷PV-》合成卷组VG-》从VG划出逻辑卷LV-》格式化LV挂载使用

LVM优点

使用卷组,使多个硬盘空间看起来像是一个大的硬盘

使用逻辑卷,可以跨多个硬盘空间的分区 sdb1 sdb2 sdc1 sdd2 sdf

在使用逻辑卷时,它可以在空间不足时动态调整它的大小

在调整逻辑卷大小时,不需要考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间

可以在线对LV,VG 进行创建,删除,调整大小等操作。LVM上的文件系统也需要重新调整大小。

允许创建快照,可以用来保存文件系统的备份。

RAID+LVM一起用:LVM是软件的卷管理方式,而RAID是磁盘管理的方法。对于重要的数据,使用RAID来保护物理的磁盘不会因为故障而中断业务,再用LVM用来实现对卷的良性的管理,更好的利用磁盘资源。

1.2创建LVM的基本步骤

1) 物理磁盘被格式化为PV,(空间被划分为一个个的PE) #PV包含PE

2) 不同的PV加入到同一个VG中,(不同PV的PE全部进入到了VG的PE池内) #VG包含PV

3) 在VG中创建LV逻辑卷,基于PE创建,(组成LV的PE可能来自不同的物理磁盘) #LV基于PE创建

4) LV直接可以格式化后挂载使用 #格式化挂载使用

5) LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

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

下面的操作会用的一些查看命令:

查看卷名 简单对应卷信息的查看 扫描相关的所有的对应卷 详细对应卷信息的查看

物理卷 pvs pvscan pvdisplay

卷组 vgs vgscan vgdisplay

逻辑卷 lvs lvscan lvdisplay

创建并使用LVM逻辑卷

1 创建PV ?

添加一个sdb磁盘 ?

[root@xuegod63 ~]# fdisk /dev/sdb #**创建4个主分区,每个分区1G** ?

[root@hmk ~]# ls /dev/sdb

/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

设定分区类型代码:fdisk /dev/sdb ===> t ===> 选择分区号 ====> 8e ====> w ?

注:现在系统已经很智能了, 直接使用默认的 83 Linux分区,也可以创建pv的。

创建pv

[root@hmk ~]# pvcreate /dev/sdb{1,2,3,4}

?Physical volume "/dev/sdb1" successfully created.

?Physical volume "/dev/sdb2" successfully created.

?Physical volume "/dev/sdb3" successfully created.

?Physical volume "/dev/sdb4" successfully created.

查看

[root@hmk ~]# pvs

PV ? ? ? ? VG ? ? Fmt ?Attr PSize ? PFree ?

/dev/sda2 ?centos lvm2 a-- ?<59.00g ?4.00m

/dev/sdb1 ? ? ? ? lvm2 --- ? ?1.00g ?1.00g

/dev/sdb2 ? ? ? ? lvm2 --- ? ?1.00g ?1.00g

/dev/sdb3 ? ? ? ? lvm2 --- ? ?1.00g ?1.00g

/dev/sdb4 ? ? ? ? lvm2 --- ? <3.00g <3.00g

详细查看

# pvdisplay /dev/sdb1

2创建vg

vgcreate vg名字 pv的名字 ?(可以接多个pv)

[root@hmk ~]# vgcreate vg01 /dev/sdb1

?Volume group "vg01" successfully created

[root@hmk ~]# vgs

?VG ? ? #PV #LV #SN Attr ? VSize ? ?VFree ? ?

?centos ? 1 ? 3 ? 0 wz--n- ?<59.00g ? ?4.00m

?vg01 ? ? 1 ? 0 ? 0 wz--n- 1020.00m 1020.00m

详细查看

[root@hmk ~]# vgdisplay vg01

?--- Volume group ---

?VG Name ? ? ? ? ? ? ? vg01

?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 ? ? ? ? ? ? ? 1020.00 MiB

?PE Size ? ? ? ? ? ? ? 4.00 MiB

?Total PE ? ? ? ? ? ? ?255

?Alloc PE / Size ? ? ? 0 / 0 ? ?

?Free ?PE / Size ? ? ? 255 / 1020.00 MiB

?VG UUID ? ? ? ? ? ? ? ImqY7R-baf2-pBrW-sx0f-aqLE-GXXW-3RnHjh ?

3创建LV

lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的size(M,G),(-l:小l指定LE的数量) vgname

[root@hmk ~]# lvcreate -n lv01 -L 16M vg01

?Logical volume "lv01" created.

?[root@hmk ~]# lvcreate -n lv01 -l 4 vg01

?Logical Volume "lv01" already exists in volume group "vg01"

[root@hmk ~]# lvcreate -n lv02 -l 4 vg01

?Logical volume "lv02" created.

[root@hmk ~]# lvs

?LV ? VG ? ? Attr ? ? ? LSize ? Pool Origin Data% ?Meta% ?Move Log Cpy%Sync Convert

?home centos -wi-ao---- ?18.08g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?root centos -wi-ao---- <37.04g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?swap centos -wi-ao---- ?<3.88g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?lv01 vg01 ? -wi-a----- ?16.00m ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?lv02 vg01 ? -wi-a----- ?16.00m ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

[root@hmk ~]# ?

[root@hmk ~]# pvdisplay /dev/sdb1

?--- Physical volume ---

?PV Name ? ? ? ? ? ? ? /dev/sdb1

?VG Name ? ? ? ? ? ? ? vg01

?PV Size ? ? ? ? ? ? ? 1.00 GiB / not usable 4.00 MiB

?Allocatable ? ? ? ? ? yes ?

?PE Size ? ? ? ? ? ? ? 4.00 MiB

?Total PE ? ? ? ? ? ? ?255

?Free PE ? ? ? ? ? ? ? 247

?Allocated PE ? ? ? ? ?8

?PV UUID ? ? ? ? ? ? ? RX8gfb-kzy4-kwIu-l4DL-eWdz-QYVX-dCN0kS

格式化lv与挂载

lv01逻辑卷在哪? /dev/vg01/lv01 ===>dm-

mkdir /lv01

mkfs.ext4 /dev/vg01/lv01

[root@hmk ~]# mount /dev/vg01/lv01 /lv01/

[root@hmk ~]# df -h /lv01/

Filesystem ? ? ? ? ? ? Size ?Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 ? 15M ?268K ? 14M ? 2% /lv01

自动挂载

echo "/dev/vg01/lv01 /lv01 ext4 defaults 00" >> /etc/fstab

# mount -a ?自动挂载配置配置文件

指定PE的大小

指定PE大小的参数: -s 如果存储的都是大文件,那么PE尽量调大,读取速度快

[root@hmk ~]# vgcreate -s 16M vg02 /dev/sdb2

?Volume group "vg02" successfully created

?[root@hmk ~]# vgs

?VG ? ? #PV #LV #SN Attr ? VSize ? ?VFree ? ?

?centos ? 1 ? 3 ? 0 wz--n- ?<59.00g ? ?4.00m

?vg01 ? ? 1 ? 2 ? 0 wz--n- 1020.00m ?988.00m

?vg02 ? ? 1 ? 0 ? 0 wz--n- 1008.00m 1008.00m

LV扩容

首先,确定一下是否有可用的扩容空间,因为空间是从VG里面创建的,并且LV不能跨VG扩容

[root@hmk ~]# vgs

?VG ? ? #PV #LV #SN Attr ? VSize ? ?VFree ? ?

?centos ? 1 ? 3 ? 0 wz--n- ?<59.00g ? ?4.00m

?vg01 ? ? 1 ? 2 ? 0 wz--n- 1020.00m ?988.00m

?vg02 ? ? 1 ? 0 ? 0 wz--n- 1008.00m 1008.00m

用的命令如下:

extend扩展 vgextend lvextend

?

扩容逻辑卷

[root@hmk ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

home centos -wi-ao---- 18.08g ?

root centos -wi-ao---- <37.04g ?

swap centos -wi-ao---- <3.88g ?

lv01 vg01 -wi-a----- 16.00m ?

lv02 vg01 -wi-a----- 16.00m ?

[root@hmk ~]# lvextend -L +30M /dev/vg01/lv01

?Rounding size to boundary between physical extents: 32.00 MiB.

?Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents).

?Logical volume vg01/lv01 successfully resized.

说明:在指定大小的时候,扩容30m和扩容到30m是不一样的写法

扩容30m ====> -L +30M

扩容到30m =====> -L 30M

[root@hmk ~]# df -h /lv01

Filesystem ? ? ? ? ? ? Size ?Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 ? 15M ?268K ? 14M ? 2% /lv01

注:可以看到LV虽然扩展了,但是文件系统大小还是原来的,下面开始扩容文件系统

ext4文件系统扩容使用命令语法: resize2fs 逻辑卷名称**

xfs文件系统扩容使用命令语法: xfs_growfs 挂载点**

resize2fs和xfs_growfs 两者的区别是传递的参数不一样的,xfs_growfs是采用的挂载点;resize2fs是逻辑卷名称,而且resize2fs命令不能对xfs类型文件系统使用

[root@hmk ~]# resize2fs /dev/vg01/lv01

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/vg01/lv01 is mounted on /lv01; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 1

The filesystem on /dev/vg01/lv01 is now 49152 blocks long.

[root@hmk ~]# df -h /lv01

Filesystem ? ? ? ? ? ? Size ?Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 ? 46M ?522K ? 43M ? 2% /lv01

[root@hmk ~]# df -Th /lv01

Filesystem ? ? ? ? ? ?Type ?Size ?Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 ext4 ? 46M ?522K ? 43M ? 2% /lv01

[root@hmk ~]# lvextend -L 80M -r /dev/vg01/lv01

?Size of logical volume vg01/lv01 changed from 48.00 MiB (12 extents) to 80.00 MiB (20 extents).

?Logical volume vg01/lv01 successfully resized.

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/mapper/vg01-lv01 is mounted on /lv01; on-line resizing required

old_desc_blocks = 1, new_desc_blocks = 1

The filesystem on /dev/mapper/vg01-lv01 is now 81920 blocks long.

建议使用上诉命令

# lvextend -L 80M -r /dev/vg01/lv01 #直接扩容到80M空间,一步到位,不用再扩文件系统了

VG扩容

[root@hmk ~]# vgs

?VG ? ? #PV #LV #SN Attr ? VSize ? ?VFree ? ?

?centos ? 1 ? 3 ? 0 wz--n- ?<59.00g ? ?4.00m

?vg01 ? ? 1 ? 2 ? 0 wz--n- 1020.00m ?924.00m

?vg02 ? ? 1 ? 0 ? 0 wz--n- 1008.00m 1008.00m

vg扩容的场景:vg卷组中的空间不了够,需要添加新的硬盘进去

[root@hmk ~]# pvcreate /dev/sdb3

?Physical volume "/dev/sdb3" successfully created.

[root@hmk ~]# vgextend vg01 /dev/sdb3

?Volume group "vg01" successfully extended

[root@hmk ~]# vgs

?VG ? ? #PV #LV #SN Attr ? VSize ? ?VFree ? ?

?centos ? 1 ? 3 ? 0 wz--n- ?<59.00g ? ?4.00m

?vg01 ? ? 2 ? 2 ? 0 wz--n- ? ?1.99g ? <1.90g

?vg02 ? ? 1 ? 0 ? 0 wz--n- 1008.00m 1008.00m

LVM缩小

lvm可以动态缩小,xfs文件系统不支持动态缩小所以我们无法实现基于xfs的动态缩小。btrfs文件系统支持在线缩小。

[root@hmk ~]# lvreduce -L 20M /dev/vg01/lv01

?WARNING: Reducing active and open logical volume to 20.00 MiB.

?THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg01/lv01? [y/n]: y

?Size of logical volume vg01/lv01 changed from 80.00 MiB (20 extents) to 20.00 MiB (5 extents).

?Logical volume vg01/lv01 successfully resized.

[root@hmk ~]# df -h /lv01

Filesystem ? ? ? ? ? ? Size ?Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 ? 77M ?776K ? 73M ? 2% /lv01

[root@hmk ~]# resize2fs /dev/vg01/lv01

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/vg01/lv01 is mounted on /lv01; on-line resizing required

resize2fs: On-line shrinking not supported

并没有缩小

VG的缩减,要保证你的物理卷是否被使用,是因为它无法缩减一个正在使用的PV

vgreduce vg01 /dev/sdb1 #将sdb1移出失败,因sdb1正在被使用

[root@xuegod63 ~]# pvmove /dev/sdb1 ?/dev/sdb3 将sdb1上数据移到新增加sdb3 pv 上 ?

/dev/sdb1: Moved: 23.53%** ?

/dev/sdb1: Moved: 76.47%** ?

/dev/sdb1: Moved: 100.00%

[root@hmk ~]# vgreduce vg01 /dev/sdb1

?Removed "/dev/sdb1" from volume group "vg01"

LVM 删除

创建LVM流程: ?

pvcreate创建pv -> vgcreate创建卷组 -> lvcreate创建逻辑卷 -> mkfs.xfs lv 格式化-> mount挂载

删除LVM流程: ?

umount卸载 -> lvremove lv移出卷组中所有逻辑卷-> vgremove vg移出卷组-> pvremove 移出pv

[root@hmk ~]# lvremove /dev/vg01/lv01 ?

Do you really want to remove active logical volume vg01/lv01? [y/n]: y ?

?Logical volume "lv01" successfully removed ?

?

[root@hmk ~]# vgremove vg01 ?

Do you really want to remove volume group "vg01" containing 1 logical volumes? [y/n]: y ?

Do you really want to remove active logical volume vg01/lv02? [y/n]: y ? ?

?Logical volume "lv02" successfully removed ?

?Volume group "vg01" successfully removed

移除pv

[root@hmk ~]# pvremove /dev/sdb1 ?

?Labels on physical volume "/dev/sdb1" successfully wiped.

使用SSM工具创建可动态扩容的存储池

SSM:检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

[root@hmk ~]# yum -y install system-storage-manager

查看磁盘信息

列出设备信息

[root@hmk ~]# ssm list dev ?

-------------------------------------------------------------- ?

?

Device ? ? ? ? ? Free ? ? ?Used ? ? Total ?Pool ? ?Mount point ?

---------------------------------------------------- ?

/dev/sda ? ? ? ? ? ? ? ? ? ? ? ? 60.00 GB ? ? ? ? ? ? ? ? ? ? ?

/dev/sda1 ? ? ? ? ? ? ? ? ? ? ? ? 1.00 GB ? ? ? ? ?/boot ? ? ? ?

/dev/sda2 ? ? 4.00 MB ?58.99 GB ?59.00 GB ?centos ? ? ? ? ? ? ?

/dev/sdb ? ? ? ? ? ? ? ? ? ? ? ? ?6.00 GB ? ? ? ? ? ? ? ? ? ? ?

/dev/sdb1 ? ? ? ? ? ? ? ? ? ? ? ? 1.00 GB ? ? ? ? ? ? ? ? ? ? ?

/dev/sdb2 ?1008.00 MB ? 0.00 KB ? 1.00 GB ?vg02 ? ? ? ? ? ? ? ?

/dev/sdb3 ? ? ? ? ? ? ? ? ? ? ? ? 1.00 GB ? ? ? ? ? ? ? ? ? ? ?

?

/dev/sdb4 ? ? ? ? ? ? ? ? ? ? ? ? 3.00 GB ? ? ?

--------------------------------------------------------------

存储池信息

[root@hmk ~]# ssm list pool ?

------------------------------------------------------- ?

Pool ? ?Type ?Devices ? ? ? ?Free ? ? ?Used ? ? ? Total ? ?

------------------------------------------------------- ?

centos ?lvm ? 1 ? ? ? ? ? 4.00 MB ?58.99 GB ? ?59.00 GB ? ?

vg02 ? ?lvm ? 1 ? ? ? ?1008.00 MB ? 0.00 KB ?1008.00 MB ? ?

-------------------------------------------------------

为公司的邮件服务器创建基于LVM的邮件存储

实战场景:公司要搭建一台邮件服务器,考虑到后期公司发展规模扩张,需要你创建一个名为mail 的LVM存储池,并在其上创建一个名为mail-lv,初始大小为1G的lvm卷,格式化为xfs文件系统,并将其挂载/mail-lv目录下。此存储池中的空间后期要可以动态扩容。

将sdb上所有卷组信息删除:

[root@hmk ~]# vgremove vg02 ?

?Volume group "vg02" successfully removed ?

?

[root@hmk ~]# pvremove /dev/sdb{2,3,4} ?

?Labels on physical volume "/dev/sdb2" successfully wiped. ?

?Labels on physical volume "/dev/sdb3" successfully wiped. ?

?Labels on physical volume "/dev/sdb4" successfully wiped. ?

?

[root@hmk ~]# mkdir /mail-lv

用的命令如下:

ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点

自动把设备变成pv,创建vg , lv ,格式化文件系统, 自动挂载

[root@hmk ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv ?

?Physical volume "/dev/sdb1" successfully created. ?

?Physical volume "/dev/sdb2" successfully created. ?

?Physical volume "/dev/sdb3" successfully created. ?

?Physical volume "/dev/sdb4" successfully created. ?

?Volume group "mail" successfully created ?

?Logical volume "mail-lv" created. ?

meta-data=/dev/mail/mail-lv ? ? ?isize=512 ? ?agcount=4, agsize=65536 blks ?

? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? sectsz=512 ? attr=2, projid32bit=1 ?

? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? crc=1 ? ? ? ?finobt=0, sparse=0 ?

data ? ? = ? ? ? ? ? ? ? ? ? ? ? bsize=4096 ? blocks=262144, imaxpct=25 ?

? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? sunit=0 ? ? ?swidth=0 blks ?

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

log ? ? ?=internal log ? ? ? ? ? bsize=4096 ? blocks=2560, version=2 ?

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

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

[root@hmk ~]# df -h /mail-lv ?

Filesystem ? ? ? ? ? ? ? ? Size ?Used Avail Use% Mounted on ?

/dev/mapper/mail-mail--lv 1014M ? 33M ?982M ? 4% /mail-lv

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何使用Terraform管理容器服务Kubernetes集群之--Serverless集群
#### 介绍 Terraform 是一款 Infrastructure as Code 的工具,可以将云端资源代码化。关于 Terraform 的基本介绍本文不再赘述,有兴趣的同学可以参考 [《云生态下的基础架构资源管理利器Terraform》](https://yq.aliyun.com/articles/215592) 等云栖社区的优秀文章。
1297 0
阿里云物联网管理SDK使用示例
目前阿里云的绝大部分服务都提供了管理资源的Rest API,针对相应的API也做了SDK的封装,且版本也在不断的迭代更新。管理API SDK的统一GitHub地址链接。关于IoT SDK的使用,之前官方也给出了示例参考,但是该示例使用的SDK版本为5.0.0,且这个版本的SDK中没有DeleteProductRequest类的实现,下面演示使用目前最新版本:6.5.0关于产品的创建及删除操作,其它操作类似。
2533 0
【操作系统】3、存储管理
计算机的工作方式可以归结为两种基本能力,即存储程序和自动地执行程序,前者靠存储器实现,后者靠CPU实现。计算机的工作原理即不断地从内存 中取出一条条指令放在CPU中运行。
786 0
Spring Security笔记:使用BCrypt算法加密存储登录密码
在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号、密码”存储在db中,但是密码都是明文存储的,显然不太讲究。这一节将学习如何使用spring security3新加入的bcrypt算法,将登录加密存储到db中,并正常通过验证。
1621 0
+关注
给我一碗炒粉
生之宇宙,归之殊途
35
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载


http://www.vxiaotou.com