Linux磁盘挂载与RAID和LVM
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘挂载与RAID和LVM相关的知识,希望对你有一定的参考价值。
Linux磁盘挂载
挂载:将额外文件系统与根文件系统某现存的目录建立关联关系,进而使得此目录作为其他文件访问入口的行为。
卸载:解除挂载的关联关系的过程。
挂载点:挂载的目标位置。
linux中挂载使用命令:mount point
linux中卸载使用命令:umount
注意:挂载点下的原有文件,在被挂载以后会被临时隐藏。
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备
(1)设备文件:例如 dev/sda2
(2)卷标:-L LABEL
(3)UUID -U
(4)伪文件系统名称:例如 proc
dir:挂载点
注意:事先存在;建议使用空目录
正在被使用的目录无法被卸载
#常用选项:
-t vsftype:指定要挂载的虚拟文件系统类型
-r readonly:只读挂载
-w read and write:读写挂载
-a auto:自动挂载所有支持自动挂载的设备(定义在/etc/fstab,且挂载选项中有“自动挂载”功能)
-L LABELl:以卷标指定挂载设备
-U UUID:以UUID指定挂载设备
-B --bind:绑定目录到另一个目录上
-n 不更新到/etc/mtab:(默认更新)
查看内核追踪到的已挂载的所有设备:#cat /proc/mounts
-o options:挂载文件系统的选项
async:挂载时使用异步模式
sync:同步模式:数据可靠性高,性能差
atime/noatime:每一次访问文件都会更改访问时间戳/不更改访问时间戳(包含目录和文件)
diratime/nodiratime:目录的访问时间戳,同上
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:是否支持suid权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:是否启动此文件系统上的acl功能
注意:上述选项可多个使用,彼此使用逗号分隔
默认挂载选项:defaults
rw,suid,dev,exec,auto,nouser,and async
卸载命令:
umount DEVICE
umount MOUNT_POINT
查看正在访问指定文件系统的进程
fuser -v MOUNT_POINT
终止所有正在访问指定文件系统的进程
fuser -km MOUNT_POINT
挂载交换分区
启用:swapon
swapon [OPTION] [DEVICE]
-a:激活所有的交换分区
-p:PRIORITY (指定优先级)
禁用:swapoff
swapoff [OPTION] [DEVICE]
内存空间使用状态:
free [OPTION]
-m:以MB为单位
-g:以GB为单位
文件系统空间占用等信息的查看工具:
df:
-h:human-readble
-i:inodes instead of blocks
-p:以posix兼容的格式输出
查看某目录总体空间占用状态:
du:
du [OPTION] ...DIR
-h:human-readble
-s:summary
文件挂载的配置文件:etc/fstab
每定义一个要挂载的文件系统
要挂载的设备或者伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
要挂载的设备或伪文件系统
设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc,sysfs)
挂载选项:
defaults
转储频率
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检(一般只有rootfs才有)
...
inode:index node,索引节点
地址指针:
直接指针
间接指针
三级指针
inode bitmap:对位标识每个inode空闲与否的状态信息
链接文件:
硬链接:
不能够对目录进行
不能夸分区进行
指向同一个inode的多个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数;
符号链接:
可以对目录进行;
可以跨分区;
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
ln [-sv] SRC DEST
-s:symbolic link
-v: verbose
文件管理操作对文件的影响:
文件删除:
文件复制:
文件移动:
Linux中的RAID(磁盘阵列)技术
特点:提高I/O能力(多个磁盘并行读写)、提高耐用性(磁盘冗余)
RAID实现方式:
外接式磁盘阵列
内接式RAID(主板集成RAID控制器)
software RAID
级别:多块磁盘组织在一起的工作方式有所不同
level
RAID-0:0, 条带卷,strip;
RAID-1: 1, 镜像卷,mirror;
RAID-2
..
RAID-5:
RAID-6
RAID10
RAID01
RAID-0:
特性:读写性能提升
可用空间N*min(最小磁盘大小)
无容错能力
最少磁盘数:2+
RAID-1:
特性:读性能提升,写性能略有下降
可用空间:1*min(最小磁盘大小)
有冗余能力
最少磁盘数:2+
RAID-5:
特性:读写性能提升
可用空间:(N-1)*min(最小磁盘大小)
有容错能力(一块磁盘)
最少磁盘数:3+
RAID-6:
特性:读写性能提升
可用空间:(N-2)*min(最小磁盘大小)
有容错能力(两块磁盘)
最少磁盘数:4+
混合类型
RAID-10:(常用)
先分成3组,先做RAID1再做RAID0
特性:
读写性能提升
可用空间N*min(s1,s2...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4+
RAID-01:
先分成2组,先做RAID0再做RAID1
RAID-50、RAID-7(了解)
JBOD:just a bunch of disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(s1,s2,...)
CentOS 6上的软件RAID的实现:
结合内核中的md(multi devices)
mdadm:模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
模式:
创建:-C
装配: -A
监控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个块设备来创建此RAID;
-l #:指明要创建的RAID的级别;
-a {yes|no}:自动创建目标RAID设备的设备文件;
-c CHUNK_SIZE: 指明块大小;
-x #: 指明空闲盘的个数;
-D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏;
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
停止md设备:
mdadm -S /dev/md#
watch命令:
-n #: 刷新间隔,单位是秒;
watch -n# ‘COMMAND‘
注意:在Linux中做软RAID,需要修改磁盘格式为Linux raid auto(fd)
LVM2:
LVM: Logical Volume Manager, Version: 2
dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;
/dev/dm-#
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
pv管理工具:
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
pvcreate /dev/DEVICE: 创建pv
vg管理工具:
vgs
vgdisplay
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
先做pvmove
vgremove
lv管理工具:
lvs
lvdisplay
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvremove /dev/VG_NAME/LV_NAME
扩展逻辑卷:
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷:
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount
快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
文件系统挂载使用:
挂载光盘设备:
光盘设备文件:
IDE: /dev/hdc
SATA: /dev/sr0
符号链接文件:
/dev/cdrom
/dev/cdrw
/dev/dvd
/dev/dvdrw
mount -r /dev/cdrom /media/cdrom
umount /dev/cdrom
dd命令:convert and copy a file
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小;
count=#:复制多少个bs;
磁盘拷贝:
dd if=/dev/sda of=/dev/sdb
备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=256 count=1
两个特殊设备:
/dev/null: 数据黑洞;
/dev/zero:吐零机;
以上是关于Linux磁盘挂载与RAID和LVM的主要内容,如果未能解决你的问题,请参考以下文章
Linux 磁盘管理 高级篇 -- quota,RAID,LVM