12月13、14号linux学习
linux磁盘管理
1.parted命令:磁盘分区
-l:列出所有分区信息
-i:在必要时提示用户
-s:从不提示用户
-v:显示版本
新建磁盘标签:mklabel gpt(标签类型为gpt)
建立分区:mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE:分区类型(p:主分区,l:逻辑分区,e:扩展分区)
[FS-TYPE]:文件系统类型(ext4,ext3,ext2,xfs......)
START:设定磁盘起点
END:设定磁盘结束点
格式化分区:mkfs -t ext3 /dev/sdb1
mkfs NUMBER FS-TYPE:对指定编号 NUMBER 的分区创建指定类型 FS-TYPE 的文件系统
打印分区表:print
删除分区:rm +(分区名)
unit UNIT(设置默认输出时表示磁盘大小单位为UNID(‘MB’,‘GB’,'%‘),compact(人类易读方式,类似于df命令中的-h),
s(扇区),cyl(柱面),chs(柱面cylinders:磁头 heads:扇区 sectors 的地址))
cp [FROM-DEVICE] FROM-NUMBER TONUMBER :将分区 FROM-NUMBER 上的文件系统完整地复制到分区TO-NUMBER 中,
作为可选项还可以指定一个来源硬盘的设备名称FROM-DEVICE,若省略则
在当前设备上进行复制
move NUMBER START END:将指定编号 NUMBER 的分区移动到从 START 开始 END 结束的位置上
注意:(1)只能将分区移动到空闲空间中(2)虽然分区被移动了,但它的分区编号是不会改变的
set NUMBER FLAG STATE:对指定编号 NUMBER 的分区设置分区标记 FLAG。对于 PC 常用的 msdos 分区表来说,分区标记
FLAG 可有如下值:”boot”(引导), “hidden”(隐藏), “raid”(软RAID磁盘阵), “lvm”(逻辑卷),
“lba” (LBA,Logic Block Addressing模式)。 状态STATE 的取值是:on 或 off
2.raid:磁盘阵列(独立磁盘构成的具有冗余能力的阵列)
功能:整合闲置磁盘空间,提高磁盘读取效率,提供容错功能
RAID 0:最少需要两块磁盘;数据条带式分布(条带卷);没有冗余,性能最佳(不存储镜像、校验信息);
不能应用于对数据安全性要求高的场合,空间利用率100%,读写速度快,不容错
RAID 1:最少需要两块磁盘;提供数据块冗余;镜像卷,空间利用率50%(1/n),读写速度一般,容错,性能好
RAID 5:最少需要三块磁盘;数据条带形式分布,以奇偶校验作冗余(带奇偶校验的条带卷);适合多读少写的情景,
是性能与数据冗余最佳的折中方案,空间利用率:(n-1)/n,读写速度快,容错,允许坏一块盘
RAID 10(又叫RAID 1+0):最少需要四块磁盘;先按RAID 0分成两组,再分别对两组按RAID 1方式镜像;
兼顾冗余(提供镜像存储)和性能(数据条带形分布),RAID1的安全+RAID0的高速,
空间利用率50%, 在实际应用中较为常用,读写速度快,容错
冗余从好到坏:RAID1 RAID10 RAID5 RAID0
性能从好到坏:RAID0 RAID10 RAID5 RAID1
成本从低到高:RAID0 RAID5 RAID1 RAID10
硬RAID:需要RAID卡,我们的磁盘是接在RAID卡的,由它统一管理和控制。数据也由它来进行分配和维护;
它有自己的cpu,处理速度快
查看raid的厂商,型号,级:#dmesg | grep -i raid
#cat /proc/scsi/scsi
软RAID:通过操作系统实现
查看raid级别,状态等信息:#cat /proc/mdstat
mdadm命令:
-a:添加磁盘,检查设备名称
-n:指定设备数量
-x:指定冗余设备数量
-l:指定RAID级别
-C:创建
-v:显示过程
-f:模拟设备损坏
-r:移除设备
-Q:查看摘要信息
-D:查看详细信息
-S:停止RAID磁盘阵列
实例:
搭建raid10阵列:
mdadm -C(创建raid /dev/md0 -a yes(如果没有自动创建) -l 1(级别为1) -n 2(使用2个) -x 1 (闲置一个) /dev/vdb{1..3}
(用这三个分区来建立)
这两个命令都可以
停止raid磁盘阵列:
损坏磁盘阵列及修复:
模拟设备损坏:
添加新硬盘:
因为是在虚拟机中模拟硬盘,所以要重启系统:reboot
添加一个磁盘分区到阵列:mdadm -a 【阵列名】【磁盘名】
同步数据:partprobe
不用分区添加swap(dd):
原理:Linux中皆是文件,swap对于linux系统来说也是一个文件,/opt/swap对于linux系统来说也是一个文件,这样概念就对等了。
用dd命令生成一个固定大小的文件,文件大小就是添加或扩容swap的大小:
用mkswap命令将其格式化:
用swapon命令挂载:
3.df命令:查看已挂在磁盘的总容量,使用容量,剩余容量(默认单位:KB)
-i:查看inodes的使用情况
-h:使用合适的单位显示
-k、-m:以KB、MB为单位显示
实例:
4. du命令:查看某个目录或文件所占空间的大小
格式:du 【-abckmsh】【文件或者目录名】
-a:全部文件和目录大小都列出来
-b:列出值以B为单位输出
-k:以KB为单位输出(默认)
-m:以MB为单位输出
-h:系统自动调节
-c:最后加总
-s:列出总和
实例:
5.fdisk命令:硬盘分区工具(只能划分小于2TB的分区)
格式:fdisk 【-l】【设备名称】
- -l 列出素所有分区表
- -u 与"-l"搭配使用,显示分区数目
- -s<分区编号> 指定分区
- -v 版本信息
- m:显示菜单和帮助信息
- a :活动分区标记/引导分区
- d :删除分区
- l :显示分区类型
- n :新建分区
- p :显示分区信息
- q :退出不保存
- t :设置分区号
- v :进行分区检查
- w :保存修改
- x :扩展应用,高级功能
6.格式化磁盘分区:
mkfs命令:
-t :文件系统类型指定建立的文件系统类型
-c :建立文件系统之前检查有无坏道
-l :文件名:从文件中读取坏道的情况
-v :显示详细情况
-N:设定indoe的数量
-b:分区是设定每个数据区块占用空间大小
-j:建立ext3格式的分区
e2label命令:查看修改分区标签(只支持ext格式的系统)
实例:
7.挂载/卸载光盘:
mount命令:
格式:mount 【挂载分区】【挂载点】
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
- -V:显示程序版本
- -h:显示辅助讯息
- -v:显示较讯息,通常和 -f 用来除错。
- -a:将 /etc/fstab 中定义的所有档案系统挂上。
- -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
- -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
- -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
- -s-r:等于 -o ro
- -w:等于 -o rw
- -L:将含有特定标签的硬盘分割挂上。
- -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
- -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
- -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
- -o sync:在同步模式下执行。
- -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
- -o auto、-o noauto:打开/关闭自动挂上模式。
- -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
- -o dev、-o nodev-o exec、-o noexec允许执行档被执行。
- -o suid、-o nosuid:
- 允许执行档在 root 权限下执行。
- -o user、-o nouser:使用者可以执行 mount/umount 的动作。
- -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
- -o ro:用唯读模式挂上。
- -o rw:用可读写模式挂上。
- -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
blkid命令:查看UUID
Sudo blkid:查询磁盘的UUID和属性
自动挂载:echo “/dev/sdb1 /disk ext3 defaults 0 0”>> /etc/fstab
umount卸载:umount 后面可以跟挂载点也可以跟分区名
8.lvm:逻辑卷管理
物理卷-----PV(Physical Volume):物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay(pvs) 物理卷全路径名称(列出当前的物理卷) #用于显示指定物理卷的属性。
pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中
卷组--------VG(Volumne Group):卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷
到卷组中。 一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组
一般维护命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay(vgs) [卷组名] #显示卷组的属性信息(列出卷组)
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名
卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]
卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]
卷组的输入与输出命令
vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]
逻辑卷-----LV(Logical Volume):逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地
扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组
一般命令:
lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名
逻辑卷的创建与删除命令
lvcreate
lvremove
逻辑卷的扩充与缩小命令
lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名
逻辑卷管理命令
lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|--reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。
物理区域--PE(Physical Extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。
物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致
逻辑区域―LE(Logical Extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小
卷组描述区域-----(Volume Group Descriptor Area):卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻
辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷
时建立的
确定系统是否安装lvm:rpm -qa|grep lvm