命令
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...)
- ,mkfs.ext4 /dev/md0
- ,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 文件系统则不需要
来源: http://www.bubuko.com/infodetail-2581073.html