linux笔记5.0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux笔记5.0相关的知识,希望对你有一定的参考价值。

命令
hexdump 查看二进制文件
-n 只格式化输出文件的前多少字节
-C 输出规范的十六进制和ASCII码
lsblk 查看块设备
fdisk 创建MBR分区
gdisk 创建GPT分区
parted 高级分区操作
partprobe 同步内存和硬盘分区表信息(centos7)
partx 同步分区信息(centos6)
mkfs 创建文件系统
mke2fs 针对ext系列创建文件系统
bkid 查看块设备标签信息(UUID,LABEL)
e2label 管理ext文件系统标签
uuidgen 生成uuid
findfs 查找分区
tune2fs 设置ext文件系统参数
dumpe2fs 查看ext文件系统块分组信息
fsck 检测和修复文件系统
e2fsck 针对ext文件系统检测和修复
xfs_repair 针对xfs文件系统检测和修复
mount 挂载
umount 卸载
mkswap 创建swap分区
df 查看文件系统空间占用等信息
du 查看使用空间(文件和目录磁盘的大小)
dd 复制和转变文件
mdadm 管理RAID
pvs 显示物理卷信息
pvdisplay 更详细的物理卷信息
pvcreate 创建pv
pvmove 移动物理卷(可自动选择同卷组下其他成员)
pvremove 删除物理卷
vgs 显示卷组信息
vgdisplay
vgcreate
vgextend 扩展卷组
vgreduce 缩减卷组
vgremove
vgexport 导出卷组
vgimport 导入卷组
lvs 显示逻辑卷信息
lvdisplay
lvcreate
lvextend
lvreduce
lvremove

磁盘存储和文件管理
一切皆文件:
函数类型文件:open()、read()、write()、close()(对文件进行操作所调用的系统函数)
设备类型文件:(/dev/)
块设备(b):block,存取单位“块”,(1k,2k,4k)典型:磁盘
字符设备(c):char,存取单位“字符”,典型:/dev/zore,、/dev/null
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
设备号码:主设备号(表示设备类型)、次设备号(同类型下设备编号)
创建设备文件:mkmod /PATH/NAME b|c 主号 次号

硬盘接口类型
并行:
IDE:133MB/s(少见)
SCSI:640MB/s(少见)
串口:
SATA:6Gbps,约750MB/s(常用于家用pc)
SAS:6Gbps(多用于SERVER)
USB:480MB/s
rpm:rotations per minute(每分钟转数)

硬盘类型:
机械硬盘(HDD):Hard Disk Drive,传统普通硬盘。
固态硬盘(SSD):Solid State Drive,固态电子存储芯片列阵制成的硬盘
区别:
1、性能:SSD在防震抗摔、传输速率、功耗、重量、噪音上明显优于HDD,SSD传输速率性能是

HDD的两倍
2、价格:HDD在价格、容量、使用寿命上优于SSD
现状:
目前SSD不能完全取代HDD(硬盘有价,数据无价:HDD在数据的可恢复性上占据绝对优势)

设备文件命名
磁盘设备的设备文件命名:/dev/sd
不同磁盘标识:a-z
同一设备上的不同分区:1,2,...(主分区和扩展分区1-4,从5往后表示逻辑分区)

硬盘存储术语
head:磁头
track:磁道
sector:扇区(一个扇区512bytes)
cylinder:柱面
CHS(磁盘三维):
采用24bit位寻址,前10bit表示cylinder,中间8bit表示head,最后6bit表示sector
最大寻址空间:8G=[(512631024*255)byte/1024/1024]G
CHS最多只能表示8G,超过就得使用LBA方式
LBA(逻辑块寻址):
利用ZBR(Zoned Bit Recording,区位记录磁盘扇区结构)来描述硬盘结构
每个磁道中存放的扇区数不同,外圈多,内圈少
LBA(logical block addressing)采用48bit位寻址
最大寻址空间128PB

硬盘的使用三大步:
1、分区
2、创建文件系统:格式化
3、挂载:分配目录名
注意:不对硬盘进行上述操作直接使用,可以存数据,但存的全是二进制数

分区
目的:
优化I/O性能
实现磁盘空间的配额限制
提高修复速度
隔离系统和程序
安装多个OS
采用不同文件系统
分区方式:
MBR、GPT
两种方式配合相应硬件程序:
早期主板内置Bios配合MBR
较新主板内置UEFI配合GPT

MBR(Master Boot Record,主引导记录):
使用32位表示扇区数,分区不超过2T
按柱面划分(cylinder=51263255,约8MB),划分的大小为8MB的整数倍,centos6开始按扇面

划分
0磁道0扇区存放分区信息:
总大小:512bytes
boot loader(引导装载):446bytes
分区表:64bytes(一个分区用16byte表示)
55AA(分区结束标识):2bytes
分区结构:
3个主分区+1个扩展分区(包含N个逻辑分区)
注意:扩展分区中分的逻辑分区的分区表信息并不存在主分区表中,而是存在逻辑分区自己的小空间中
备份分区表信息:
dd if=/dev/sda of=/data/mbr_bak bs=1 count=512(本地备份)
scp /data/mbr_bak ip地址:/data(将本地备份存入网络服务器)
克隆分区表信息:
dd if=/dev/sda of=/dev/sdb bs=1 count=512(克隆sda硬盘分区表信息至sdb)
注意:
1、sdb>=sda
2、只能克隆主分区表

GPT
GUID(Globals Unique Identifiers,全局唯一标识符)partition table支持128个分区,使用

64位,支持8Z(512Byte/block)64Z(4096Byte/block)
使用UUID(Universally Unique Identifier,通用唯一标识符)表示磁盘和分区GPT分区表,自动备份在头和尾两份,并有CRC校验位

管理分区
列出块设备:
lsblk
创建分区:
fdisk:创建MBR分区
gdisk:创建GPT分区
parted:高级分区操作
partprobe:同步内存和硬盘分区表信息

parted命令
操作实时生效,小心使用
parted /dev/sda mklabel gpt|msdos 创建分区类型
mkpart primary 1 200(默认M) 创建主分区
rm 分区号 删除分区
-l 列出分区信息

fdisk和gdisk命令
fdisk管理MBR分区,gdisk管理GPT分区(两命令用法基本相同)
fdisk -l 查看分区信息
fdisk /dev/sda 管理分区
p:分区列表
t:更改分区类型
n:创建新分区(p(primary)主,e(extended)扩,l(logical)逻辑)
d:删除分区
v:校验分区
u:转换单位
w:保存退出
q:不保存退出

同步分区表
fdisk -l 查看的是硬盘上的分区表信息
lsblk 查看的是内存中的分区表信息
cat /proc/partitions 查看内核中的分区表信息
修改分区表后硬盘和内存、内核中的分区表信息会不同,此时需要进行同步操作
partprobe(centos5|7)
partx -a /dev/sda 在sda增加分区时使用
partx -d --nr 分区号 /dev/sda 在sda删除分区时使用

创建文件系统
何为文件系统:
操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构成为文件管理系统,简称文件系统
功能:
负责为用户建立文件,存入,读出,修改,转储文件,控制文件的存取,安全控制,日志,压缩,加密等
支持的文件系统:
/lib/modules/uname -r/kernel/fs文件夹下存放支持的文件系统

文件系统分类:
按操作系统分类:
linux:
ext(Extended file system,扩展文件系统)2,3,4(主流)、xfs(SGI)、btrfs(Oracle)、reiserfs、jfs(AIX)、swap
光盘:
iso9660
Windows:
FAT32(不支持4G以上文件),exFAT(u盘),NTFS
Unix:
FFS(fast),UFS(unix),JFS2
网络文件系统:(跨网络访问,相当于共享文件夹)
NFS,CIFS
集群文件系统:(cluster,多个服务器可以同时访问一个存储设备)
GFS2,OCFS2(oracle)
分布式文件系统:
fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:(无文件系统,追求高性能,但不便于管理)
未经处理或者未经格式化产生的文件系统

按时否支持journal(日志)功能分类:
日志作用:先从内存中读对文件的操作,在将操作传给文件。保证文件系统安全性,不会因掉电造成正在修改的文件损坏
日志型文件系统:ext3,4、xfs,...
非日志型:ext2、vfat

文件系统的组成部分:
内核中的模块:ext4、xfs、vfat
用户空间的管理工具:mkfs.ext4、mkfs.xfs、mkfs.vfat
linux的虚拟文件系统:VFS
查看当前支持的文件系统:cat /proc/filesystems

附:
buffer和cache的区别
cache缓存:针对读缓存,将读入的数据缓存,为下次访问提供便利
buffer缓冲:针对写缓冲,将写好的数据缓冲,等系统空闲写入文件

文件系统的特性
单节点:
xfs(支持超大容量)、ext4、btrfs
网络/多节点:
gfs2(允许多个服务器同时访问,集群环境使用)

创建文件系统
mkfs命令:
mkfs.ext4|xfs|... /dev/device(设备)
mkfs -t ext4|xfs|...
-L “LABEL(标签,卷标)”:设置卷标

mke2fs命令(ext系列文件系统专用管理工具):
-t ext2,3,4
-b 1024|2048|4096:设置最小存储单元大小
-L “LABEL”
-j:相当于-t ext3
-i #:为数据空间中每多少个字节创建一个inode,大小不应该小于block的数量的大小
-N #:指定分区中创建多少个inode
-l:一个inode记录占用的磁盘空间大小,128--4096
-m #:为管理员预留空间占总空间百分比(默认5%)
-O 功能:启用指定功能
-O ^功能:关闭指定功能

文件系统标签
作用:
指向设备的另一种方法(与设备无关)
blkid命令:
查看块设备属性信息
-U uuid:根据指定uuid查找对应的设备
-L label:根据指定label查找对应的设备
e2label命令:
管理ext系列文件系统的LABEL
e2label DEVICE LABEL
findfs命令:
查找分区
findfs LABEL= :以卷标为条件查找
findfs UUID= :以uuid为条件查找

tune2fs命令:
重新设定ext系列文件系统可调整参数的值(只能针对ext的文件系统)
-l:查看指定文件系统超级块信息(super block)
-L LABEL:修改卷标
-m #:预留给管理员的空间百分比
-j:将ext2升级为ext3
-O:文件系统属性启用或禁用(^)
-o:调整文件系统的默认挂载选项(^)
-U uuid:修改UUID号(配合uuidgen命令生成的uuid使用)
别轻易改uuid,因为写配置文件时一般用uuid表示设备
dumpe2fs命令:
查看块分组信息
-h:查看超级块信息,不显示分组信息

文件系统检测和修复
常发生于死机或非正常关机后
挂载文件系统标记为“no clean”
注意:一定不要在挂载状态下修复(df命令查看挂载状态)
fsck命令:
fsck.FS_TYPE|-t FS_TYPE:指明文件系统(系统会自动检测,一般不需人为指定)
-p:自动修复
-r:交互式修复
-y:自动回答yes
-f(force):强制修复(有时即使显示clean,也可能会有损坏)
e2fsck:类似于fsck,fsck在修复是调用的就是e2fsck
当文件系统为xfs时,用xfsrepair修复
xfs文件系统管理命令:xfs
...(tab可查看所有选项)

挂载
何为挂载:(mount)
将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其它文件访问该文件系统的入口
挂载点(mount point):目录
何为卸载:(umount)
解除此关联关系的过程
卸载时可使用设备名,也可以使用挂载点
进程正在使用中的设备无法被卸载
注意:
1、挂载点下的原有文件在挂载完成后会被隐藏(与隐藏文件不同),所以挂载点目录最好为空
2、两个文件系统(设备)不能挂载到同一个目录(挂载点)下,一个文件系统可以挂载到多个目录下

挂载文件系统
mount命令:
先通过查看/etc/mtab/文件显示当前已挂载的所有设备
指明挂载设备:
1、设备文件:例/dev/sd...
2、卷标:-L LABEL
3、UUID:-U uuid
4、伪文件系统名称
指明挂载点:
dir:事先存在,建议使用空目录
选项:
-t:指明挂载设备的文件系统(一般不加,系统可自动检测)
-r(readonly):只读挂载
-w(read and write):读写挂载
-n:不更新/etc/mtab,mount不可见(起到隐藏挂载作用)
-a:自动挂载所有支持自动挂载的设备(定义在/etc/fstab文件中,且挂载选项中有auto功能)
-B,--bind:绑定目录到另一个目录上
查看内核追踪到的所有已挂载设备:cat /proc/mounts

-o(option):挂载文件系统的选项,多个选项用逗号份分隔
async:异步模式(写文件先写入buffer,空闲时在写入用硬盘)
sync:同步模式,内存更改时,同时写硬盘
atime/noatime:目录和文件的访问时间戳(默认noatime)
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,即是否支持-a选项
exec/noexec:是否支持在文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:是否支持suid和sgid权限
remount:重新挂载(进程正在使用时也可以重新挂载)
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载设备,对/etc/fstab的使用
acl:启用此文件系统上的acl功能
loop:使用loop设备(用于挂载使用文件当设备的文件系统)
centos6:默认只有8个loop设备,超过限制需自己建loop设备(mknod)还需修改权限,批量增

加loop设备:在/boot/grub/grub.conf文件中的kernel最后添加max_loop=指定值
centos7:无限制
用losetup命令创建文件与loop设备的关联
defaults(默认):相当于rw,suid,dev,exec,auto,nouser,async

卸载
进程正在使用中的设备无法被卸载
先查看挂载情况:
findmnt mount_point|device
再查看正在访问指定文件系统的进程:
lsof mount_point
fuser -v mount_point
终止所有正在访问指定文件系统的进程:(慎重使用)
fuser -km mount_point
最后卸载:
umount device|mount_point

文件挂载的配置文件
作用:
mount命令挂载的文件系统在系统重启后无法保存
想永久保存挂载配置需写进/etc/fstab文件中
使用mount -a命令挂载/etc/fstab中的所有文件系统,当文件中添加新配置用该命令激活,当对文件中已有配置修改时用mount -o rmount命令实激活
定义:
/etc/fstab每行定义一个要挂载的文件系统
六大项:
1、设备标识:UUID、LABEL、设备名
2、挂载点
3、文件系统类型
4、挂载选项:defaults、...、
5、备份频率:0(不备份)、1(每天备份)、2(每隔一天备份),但是需要结合备份工具使用
6、自检顺序:0(不自检)、1(首先自检,一般只有rootfs采用)、2,...自检顺序依次执行
注意:
1、挂载以文件模拟的设备时,设备标识不能用UUID,要用文件路径,挂载选项用loop
2、挂载光盘时,设备标识用设备名,文件系统类型为iso9660

实验1:
迁移/home到新的分区
1、备份/home/*
2、创建一个新的磁盘分区(fdisk|gdisk)
3、创建文件系统(mkfs)
4、创建一个临时挂载文件夹/mnt/home,并挂载(mkdir,mount)
5、防止用户正在访问修改/home下文件,切换至单用户模式(init 1,此模式无法联网)
该步骤不建议使用,可通知用户迁移时间,确保迁移时/home无用户-访问
6、将/home下文件迁移至/mnt/home(cp -av)
7、检查迁移结果(ls /home /mnt/home -l)
8、删除/home下文件,释放空间(rm -rf /home/*
9、将新分区写入/etc/fstab(vim,例:UID=XXX /home ext4 default 0 0)
10、卸载临时挂载点并删除(umount,rm)
11、若切换至单用户模式,在迁移完要将模式切回(init 5)

交换分区和文件
作用:
系统内存不足时,拿硬盘来模拟内存(偶尔使用,若经常使用说明内存需要升级了)
硬盘需求:高性能硬盘,同一块硬盘外道好于内道
free命令:查看系统内存和swap
创建swap分区
用物理分区创建:
1、创建分区
2、mkswap创建文件系统
3、在/etc/fsabe文件中添加条目
UUID swap swap default,[pri=value(值)](设置优先级值,越大优先级越高) 0 0
4、swapon -a激活交换空间
用文件创建:
1、创建文件(dd if=/dev/zore of=/swapfile bs=1024M count=2)
2、mkswap /swapfile
3、vim /etc/fstab
/swapfile swap swap default 0 0
4、swapon -a
注意:
物理分区创建的swap分区性能优于文件创建的swap分区
swap命令选项:
-a:激活所有交换分区
-p(priority):指定优先级
-s:查看所有激活的swap
swapoff:禁用swap分区

移动介质
访问前,一定要挂载
摘除前,一定要卸载
挂载点通常在/media或/mnt下
光盘:
图形环境下自动启动挂载,否则就必须被手动挂载
mount /dev/cdrom /mnt
eject命令卸载或弹出光盘
-t:弹入光盘
制作ISO镜像文件:
cp /dev/cdrom /PATH/centos#.iso
dd if=/dev/cdrom of=/PATH/centos#.iso
打包文件夹制作iso文件:
mkisofs -r -o /PATH/XXX.iso /PATH
mkdvdios脚本,用法:mkdvdiso.sh source(源文件,可多个) /PATH/DVDiso
刻录光盘:
wodim -v -eject centos.iso
USB:
查看USB设备是否识别:
lsusb
被内核检测为SCSI设备(/dev/sd...)
图形环境下自动挂载,否则必须手动挂载
mount /dev/sd... /mnt
注意:往u盘里拷文件时,因为系统默认async模式,所以显示拷完可能数据还在buffer中,多用几次sync命令来同步数据进u盘,防止文件拷失败

常用工具
df:
查看文件系统空间占用等信息
-H:以1000为单位
-T:显示文件系统类型
-h:以人类易读的单位显示
-i:显示节点号
-P:以Posix兼容格式输出(当有过长文件名时,自动将格式对齐)

du:
查看目录空间占用信息
-h:以人类易读的单位显示K,M,G(默认单位为K)
-s:目录总大小
--max-depth=#:指定最大深度#

dd:
复制和转变文件
用法:dd if= of= bs= count= skip= seek= conv=
if= of= bs= count= 复制文件并对原文件的内容进行转换和格式化处理
if 从文件输入(读)(/dev/zore/全零的字符设备)
of 输出(写)到文件
bs 指定块大小
count 指定写的块数
skip 跳过输入文件的前多少个块
seek 跳过输出文件的前多少个块
conv 用指定参数转换文件
转换参数:
ascii:转换EBCDIC为ASCII
ebcdic:转换ASCII为EBCDIC
lcase:大写字符转换为小写字符
ucase:小写字符转换为大写字符
nocreat:不创建输出文件
noerror:出错不停止
notrunc:不截断输出文件
sync:输入块不足用空字符补齐
fdatasync:不写入buffer,直接写入磁盘

RAID
何为RAID:
Redundant Arrays of inexpensive Disks(廉价的磁盘冗余阵列)
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
作用:
提高IO能力:磁盘并行读写
提高耐用性:磁盘冗余来实现
实现方式:
硬RAID:
外接式:通过扩展卡提供适配能力
内接式:主板集成RAID控制器
安装OS前在BIOS里配置
软RAID:
软件RAID:通过OS实现
级别:多块磁盘组织在一起的工作的不同方式
RAID-0:条带(strip)化存储,读写性能提升,无容错能力(最少两块硬盘)(磁盘利用率100%)
RAID-1:镜像(mirror)化存储,读能力提升,写能力下降,有容错能力(2)(50%)
RAID-3:0基础上,多块数据盘异或运算,值存于专用校验盘(3)(n-1/n)
RAID-5:3基础上,校验值也条带化存储,读写性能提升,有容错能力,允许最多1块磁盘损坏(3)(n-1/n)
RAID-6:5基础上,增加一次校验,读写能力提升,有容错能力,允许最多2块磁盘损坏(4)(n-2/n)
RAID-10:先做两两一组1,再将多组1做0,读写提升,有容错性,每组镜像最多只能坏一块(4)(当6块硬盘时,一块损坏后,系统失败率1/5)(性能最好!!!)
RAID-01:先做0,再将两组0组合成1,读写提升,有容错性,只能有一组镜像损坏(4)(当6块硬盘时,一块损坏后,系统失败率3/5)
RAID-50:先做5在做0,性能好,成本高
JBOD(Just a Bunch Of Disks):只是把多块磁盘空间合并成一个大的连续空间使用,性能没有提高
RAID-7:自带操作系统和管理工具,可独立运行,理论上性能最高的RAID模式
常用级别:
0,1,5,10,50,JBOD

软RAID(生产中不常见,基本都是用硬RAID)
mdadm命令:
为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi(复选) devices)
RAID设备可命名为/dev/md{0,1,...}
命令用法:
模式:
-C:创建
-A:装配
-F:监控
管理模式:
-f:标记指定磁盘为损坏
-a:添加磁盘
-r:移除磁盘
创建RAID:
mdadm -C /dev/md# -a yes -l# -c # -n # -x # /dev/DEVICE...
-C:创建模式
-a:自动创建目标RAID设备的设备文件
-l:指明要创建的级别
-c(chunk):指明块大小,单位k(默认512)
-n:指明创建该RAID的设备数
-x:指明备用设备数
-D:显示raid的详细信息
cat /proc/mdstat:观察md状态
-G:扩展RAID,增加新成员(配合-a使用),增加后还需同步成员文件系统:
resize2fs /dev/md#(ext系列)
xfs_growfs /PATH/mount_point(xfs系列)

实验2
创建raid-5:
1、创建分区,大小一致(硬盘直接使用,分区要用t改类型为fd)
2、mdadm命令创建(mdadm -C /dev/md0 -a yes -l5 -c 32 -n 3 -x 1 /dev/sd...)
3、mkfs.ext4 /dev/md0
4、vim /etc/fstab
5、mdadm -Ds /dev/md0 > /etc/mdadm.conf(生成配置文件)
测试:
mdadm -S /dev/md0停止设备(先umount)
mdadm -As /dev/md0激活设备
mdadm -R /dev/md0强制启动
模拟损坏:
mdadm /dev/md0 -f /dev/sd#标记损坏
mdadm /dev/md0 -r /dev/sd#删除
mdadm /dev/md0 -a /dev/sd#添加

创建raid-10
假设a,b,c,d四块硬盘
方法1:
mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{a,b}
mdadm -C /dev/md1 -a yes -l1 -n2 /dev/sd{c,d}
mdadm -C /dev/md2 -a yes -l0 -n2 /dev/md{0,1}
方法2:
mdadm -C /dev/md0 -a yes -l10 -n4 /dev/sd{a,b,c,d}

删除raid
1、取消挂载(保证无人访问情况下)
2、删除/etc/fstab中对应配置
3、rm -f /etc/mdadm.conf
4、查看组成该RAID的分区(-D)
5、停止设备(-S)
6、删除组成该RAID的分区
7、删除磁盘上RAID残留信息(mdadm --zero-supperblock /dev/分区)

LVM
何为LVM:
Logical Volume Manager,逻辑卷管理器
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
行为:
允许多个物理设备间重新组织文件系统
将设备指定为物理卷(物理卷是用固定大小的物理区域(Physical Extend,PE)来定义的)
用一个或多个物理卷来创建一个卷组
在物理卷上创建逻辑卷(是由PE组成)
可在逻辑卷上创建文件系统
优势:
方便扩展空间
原理:
1、pvcreate实现:block devices --> physical volumes(普通硬盘变成物理卷)
2、vgcreate实现:physical volumes --> volume Group(将物理卷组合成一个卷组)
3、lvcreate实现:volume Group --> logical volumes(将卷组划分成多个逻辑分区)
实质:
创建出的逻辑卷其实是指向/dev/dm-#的软连接
dm:device mapper(设备映射)
LVM更改文件系统的容量:
通过交换PE来进行管理,将LV内的PE转移到其他设备中以降低LV容量,将其他设备中PE加到V中

以加大容量(通过对PE的操作实现扩容或缩减)

管理工具
pv工具
pvs:显示物理卷信息
pvdisplay:更详细的物理卷信息
pvcreate:创建pv
pvmove:移动物理卷(可自动选择同卷组下其他成员)
pvremove:删除物理卷

vg工具
vgs:显示卷组信息
vgdisplay
vgcreate
vgextend:扩展卷组
vgreduce:缩减卷组
vgremove(先移走卷组中pv在删除vg)
vgexport:导出卷组
vgimport:导入卷组

lv工具
lvs:显示逻辑卷信息
lvdisplay
lvcreate
-n:指定逻辑卷名
-l:指定大小(块数)后跟#%是指定剩余块数的百分比块数
-L:指定大小(容量)
lvextend(扩展后用resize2fs命令同步文件系统或直接加-r选项同步)
指定大小#(扩展到)|+#(扩展)
lvreduce:缩减逻辑卷大小
lvremove

实验3:
LVM管理
1、创建:
创建物理卷:pvcreate 设备...(可同时创建多个)
创建卷组:vgcreate -s #(指定PE大小) 卷组名 物理卷设备...
创建逻辑卷:lvcreate -n lv0(指定逻辑卷名) -l #(%FREE)(指定PE块数) 卷组名
创建文件系统:mkfs.ext4 /dev/卷组/逻辑卷
挂载:mount
2、扩展:(支持磁盘在挂载情况下直接扩展)
将新硬盘创建成物理卷
加入卷组:vgextend 需扩展卷组 新物理卷
扩展逻辑卷:lvextend -r(同步文件系统,针对ext文件系统) -L #(加到)|+#(加)(指定PE大小) 需扩展逻辑卷
3、缩减:
缩减逻辑卷:
卸载:umount
检查文件完成性:fsck -f或e2fsck -f
缩减文件系统:resize2fs(重新设置文件系统大小)
缩减逻辑卷:lvreduce
挂载:mount
缩减卷组:
搬家:pvmove
从卷组中移除:vgreduce
删除移除pv:pvremove
4、跨主机迁移卷组
查看pv所在硬盘:pvdisplay
若vg中pv分布在不同硬盘,需先将pv移动到一个硬盘上:pvmove
删除空pv(之前移动的pv):vgreduce
迁移前查看卷组名和逻辑卷名是否与新机器上卷组名、逻辑卷名冲突,若冲突则需事先改名:
vgrename、lvrename
卸载卷组上的逻辑卷:umount
禁用卷组:vgchange -an
导出卷组:vgexport
拆出硬盘装至新机器上
识别新设备:echo ‘- - -’ > /sys/class/scsi_host/host2/scan
导入卷组:vgimport
启用卷组:vgchange -ay
挂载:mount

逻辑卷快照
何为快照:
快照是特殊的逻辑卷
生成快照时会分配给它一定空间,但快照只在和原来的逻辑卷不同时才会消耗空间,即原逻辑卷数据被修改时会将旧数据复制到快照中,没改改动过的数据不做快照;通常建立快照只需要原逻辑卷的15%-20%就够了(快照不可能比原数据大),可以使用lvextend扩展快照大小
注意:
快照和逻辑卷必须在同一卷组中
快照无法代替备份功能,当逻辑卷所在硬盘损坏时,快照也会损坏
快照可用于实验环境,恢复实验前数据,或cp数据库
创建快照:
lvcreate -n 快照名 -s(snapshot,指明创建的是快照) -L 大小 -p r(增加只读属性,避免对快照误操作) /PATH/lv(指定对谁做快照)
恢复快照:
先卸载逻辑卷和快照
合并逻辑卷和快照:
lvconvert --merge 快照
注意:快照一旦合并,将被自动删除
删除快照:
先卸载快照
lvremove 快照
附:
ext和xfs快照差别:
ext文件系统创建快照时不加-p r选项会导致无法合并逻辑卷和快照,xfs文件系统则无影响
xfs文件系统挂载快照因快照和对应逻辑卷uuid相同导致挂载失败,需加-o nouuid选项,ext文件系统则不需要

以上是关于linux笔记5.0的主要内容,如果未能解决你的问题,请参考以下文章

Android 实用代码片段

学习笔记:python3,代码片段(2017)

20179223《Linux内核原理与分析》第十一周学习笔记

[linux][c/c++]代码片段01

Enterprise Library 5.0 学习笔记

2019-举例跟踪分析Linux内核5.0系统调用处理过程