linux 下的逻辑卷(LVM)
时间:2014-11-05 01:35 来源:linux.it.net.cn 作者:IT
Linux 系统中的每一个分区都是一个文件系统
文件系统就是指对存在物理空间上的文件的一种管理软件(个人认为)
Linux 内核以后 开始支持大量的文件系统
日志文件系统 ext ReiserFS XFSJFS
Linux 内核以后支持的文件系统有 JFS ReiserFs ext ext ext ISO XFS Minx MSDOS UMSDOS VFAT NTFS HPFS NFS SMB SysV PROC 等等
Ext /ext 采用block+ innode 方式来存放文件
Ext /ext 有一个空间被称为超级块
(superblock) 存放文件系统的原数据
包括 卷标名 block数 inode 数 等等
Inode是存放文件元数据 包括文件权限 属性 更改时间等数据
Inode 就是一个索引节点 这个inode纪录文件的属性 位置等信息
每个inode都有一个号码 称为索引节点号(inode号)
Linux 文件系统将索引节点号和文件名同时保存在目录中 所以目录只是将文件的名称和他的索引点号结合在一起的一张表 目中的每个文件名和索引点号称为一个连接
一个文件只有一个对应的inode号 但是一个inode可以有多个文件名与其对应 因此 在磁盘上的同一个文件可以通过不同的路径去访问他
书上说ext 不是日志文件系统
从ext 变成ext 不需要格式化 用tune fs 就可以
从ext 变成ext 可以不用作任何的改动
Ext 特性
高效性 非法关机后恢复ext 文件系统只要 秒左右
数据完整性 避免非法关机对数据完整性的破坏
文件系统的速度 对磁盘驱动器读写进行了优化
数据的转化 ext -ext ext -ext
多种日志模式 对所有数据进行日志纪录模式 只对metadata进行日志纪录 而不对数据进行日志纪录
Data=journal 所有数据日志纪录模式
Data=writeback 对metadata日志纪录模式
提示metadata是定义文件系统中的数据 即数据中的数据
Root可以根据实际的工作情况来定义 在系统的工作速度和数据完整性来选择
将一个新的分区格式化成ext 文件系统
# mke fs -j /dev/hda
将ext 转换成ext 文件系统
# tune fs -j /dev/hda
提示 将ext 文件系统转换成ext 时 不需要将分区卸载 直接转换就可以 不要忘记把/etc/fstab 里的ext 改成ext
用e fsck 修复ext 文件系统
# umount /dev/hda 先卸载该分区.
2.#e fsck fy /dev/hda 修复该分区
Reiserfs文件系统
年 hans reiser 把reserfs文件系统在网上公布
Reserfs 比ext fs要快的的多
当前reserfs 只能在intel结构体系上使用
Reiserfs 文件系统一直被用于在高端的unix系统上
Reiserfs 特点
先进的日志机制
Reiserfs 日志机制在每个实际数据要修改之前把相应的日志写入到磁盘空间 这样提高数据的安全性
高效的磁盘利用率
Reiserfs对一些小的文件不分配inode 而是将这些小文件打包 存放在同一个磁盘块中 而其他的文件系统是每个文件都要占用一个block块 这意味着如果有 个小文件 那么就要占用 个block 这样非常浪费磁盘空间
独特的搜索方式
Reserfs基于平衡树(balanced tree)搜索 这种方式的速度要比ext 快的多 平衡树是一种高效的算法
支持海量硬盘
Reserfs可以管理上百G的数据 Rerserfs最大支持文件系统的尺寸是 TB 这非常适合企业级应用
优异的性能
Reserfs 文件系统启动X -windows的速度比ext 快 倍
文件的附加属性
# chattr +〔AadijS〕 filename 设置文件的附加属性
# lsattr filename 查看文件的附加属性
A 当文件被改变时 文件的更改时间不变
a; 只能向该文件追加内容 不可以更改原内容
i 文件不可以删除 重命名 改变内容
j 在ext 文件系统中 次文件一定被写入日志
S 当文件被改动 此改动会同步写入文件系统
将原ext 转换升级成ext 文件系统
# tune fs -j /dev/hda 这是直接转换
# mke fs j /dev/hda 这是格式化转换
常见的文件系统
Minix linux第一个支持的文件系统 比较古老 现在每人用了
ISO 标准的cdrom 文件系统
NFS 是sun公司推出的网络文件系统 准许多台计算机共享一个文件系统
提示 redhat linux默认是不支持ntfs 文件系统的 我们可以自己编辑kernel来让系统支持ntfs 但是可能会对数据造成损坏
常用创建文件系统工具
Mkfs 可以用于创建各种文件系统 由-t参数来指定
Mke fs 创建ext /ext 文件系统
# Mk fs -j /dev/hda
文件系统的使用
设备 就是一个具体的文件系统 可以用设备名或卷标名来表示
挂载点 必须是一个目录 当一个目录下有文件时 则在该文件系统被挂载后 原文件暂时无法访问 直到当前挂载的文件被卸载以后 才能继续访问
Mount命令参数
挂载时使用mount命令
基本格式 mount 〔-参数〕 〔设备名〕 〔挂载点〕
Mount -t 指定文件系统的类型
Umount 卸载文件系统
Mount -o loop disk iso 挂载 iso 文件
Mount -o 选项指定挂载文件系统时的选项 有些时候也可以/etc/fstab来指定 常用的有
ro 以只读的方式挂载
rw 以读写的方式挂载
nouser 使一般的用户无法挂载设备
user 可以让一般的用户挂载设备
配置/etc/fstab
/etc/fstab 这个文件是文件系统的挂载信息
当mount一个文件系统时如果给出的参数不全 系统会从/etc/fstab文件中读取参数来补全
当系统启动时 系统会根据这个/etc/fstab这个文件中的配置信息来自动加载文件系统
这个文件同时 还可以被fsck dump quotaon swapon等程序所使用
fstab 文件的格式
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda /boot ext defaults
fs_spec ; 这个字段表示要加载的文件系统所在的设备或远程文件系统
fs_file 表示文件系统的挂载点
fs_type 文件系统的类型
说明 对于swap设别 该字段为none 对于加载目录名中包含空格的情况 用 来表示空格
Fs_options 因为在给指定的设备加载文件系统时 需要使用特定的参数 多个参数是由逗号分开的 对于大多数的系统都是default就可以满足需要了
加载文件系统可以指定的参数
ro 以只读的方式加载
sync 不对该设备的写操作进行缓冲处理 这可以防止在非法关机时破坏文件系统和数据的完整性 但是这样却降低了计算机的工作效率
user 准许普通用户可以挂载这个文件系统
quota 强制的在该文件系统上进行磁盘配额
noauto 不在使用mount -a 命令 (在系统启动时) 加载文件系统
fs_dump ; 该选项被 dump 命令使用来检查一个文件系统应该以多快的频率进行转存 如果不需要转存就设置为
fs_pass ; 这个字段表示fsck命令用来决定在启动时需要被扫描文件系统的顺序 根文件系统 / 对应该字段的值为 其他文件系统应该为 如果该文件系统不需要在启动时扫描 则设置为
检查当前系统中挂载的文件系统
# mount 使用mount命令
# cat /etc/fstab 使用/etc/fstab 文件
# cat /proc/mounts 使用内存镜像文件
卷标的含义
由于设备的文件名可能在硬盘结构发生变化时而改变 因此redhat linux 对ext 文件系统使用卷标来挂载和卸载
卷标纪录在ext /ext 文件系统的超级块中(superblock)
e label 命令可以查询和更改ext 文件系统的卷标名
# cat /etc/fstab
LABEL=/ / ext default
/dev/hda /usr ext default
第二的意思就是说 把/dev/hda 这个分区挂载到/usr这个目录上
第一行没有指明分区 意思是把LABEL(卷标)为/ 的分区mount到/ 分区上 这样写的好处就是当你的硬盘从主板上的IDE (hda)移动到IDE (hdc)上的时候 系统仍然可以自动的挂载正确的分区
手动添加新分区 自定义卷标
# e label /dev/hdax /new
# mkdir /new
最后在/etc/fstab 文件中加入
LABEL=/new /new ext default
这样就ok了 下次重启后系统会自动挂载这个/new分区
查询 ext /ext 的卷标名
# e label /dev/hda 查看
Boot 系统返回信息
更改ext /ext 的卷标名
# e label /dev/hda data 更改
# e label /dev/hda 查看
Data 系统返回信息
用卷标名来挂载文件系统
# mount —L data /data
# mount LABEL=DATA /data
当你想创建 删除分区或重新划分分区大小 分区所在的设备就不能是正在使用的(分区不能被挂载 并且交换空间也不能被启动) 达到这个目录的最简单的方法就是 进入救援模式中引导系统 由于已经加载的文件系统的信息会自动的写道/etc/mstab中 所以用户只需要给出设备或挂载点中的一个参数即可
如果驱动器不包括任何这在使用的分区 你可以使用umount来卸载分区 使用swapoff 命令来关闭硬盘驱动器上的交换空间
文件系统的维护命令
Fsck /filesystem check 用于检查和修复文件系统
e fsck 检查和修复ext /ext 文件系统
tun fs 更改ext 文件系统的属性
resize fs 更改ext 文件系统的大小
parted 更改多种文件系统的大小
linux有个parted 工具可以调整分区的大小 但是他是有限制的 如果向增大一个分区那么该分区后面必须有没有使用的空间 而且这个分区没有被mount
# parted /dev/had resize
意思是把分区 调整从柱面 到柱面 结束 重新启动后就会生效了
Linux系统将每隔 次启动系统或 天对文件系统进行一次检查 这些属性可以用tune fs 来设定(时间间隔的周期以秒指定)
# tune fs -i /dev/hdb
设置检查文件系统的时间间隔秒数(-i)为 就是禁止根据时间的周期进行检查
文件系统访问控制列表
可以为多个用户和组建立文件访问控制列表
基本格式化为 mount -o acl
Getfacl
Setfacl
Acl 访问控制列表
自定义访问控制列表是一种机制 每一个acl由一个用户标识和组标识结合的整体 用户标识与组标识配合相对应的访问权限组成了
(user group mode)
访问级别
(u g rwx) 特定的一个用户 特定的组
(u % rwx)特定的一个用户 任意的组
(% g rwx)任意一个用户 特定的组
(% % rwx)任意一个用户 任意一个组
每一个文件都有 组的访问权限模式 如果有多个类型的访问权限条目 那么较详细的条目的优先级较高 在acl中设置某一个特定用户的读写权限 如果设置了m(ask) 那用户的权限还要受到
m(umask)的限制 原来是要两个权限相与一下 才四用户的正确权限
比如 设置userA 的权限为r+w 而m设置为r 那么userA的权限为r
自动挂载文件系统
系统通过autofs服务自动的挂载文件系统
需要后台的automount 进程
Autofs服务的开关由 /etc/init d/autofs脚本来控制
主要应用在软驱和光驱的场合
如果该设备在一段时间内没有被使用 那么autofs会自动卸载该设备
Autofs 服务的主要配置文件
/etc/auto master 和 /etc/auto misc
通过这两个文件来完成automount的设定
Auto master 的每一行表示一个自动挂载的集群
每一行的格式为
自动挂载目录的集合 参考文件(默认文件为/etc/auto misc)
Auto misc 文件中纪录的则是每一个自动挂载的设备
每一个行的格式为
挂载点(实际挂载点为 /自动挂载的目录集合/挂载点 ) 自动卸载的时间 设备文件名
(责任编辑:IT)
Linux 系统中的每一个分区都是一个文件系统 文件系统就是指对存在物理空间上的文件的一种管理软件(个人认为)
Linux
日志文件系统
Linux
Ext
Ext (superblock) 存放文件系统的原数据
包括
Inode是存放文件元数据
Inode 就是一个索引节点
每个inode都有一个号码
Linux 文件系统将索引节点号和文件名同时保存在目录中
一个文件只有一个对应的inode号
书上说ext
从ext
从ext
Ext
Data=journal 所有数据日志纪录模式 Data=writeback 对metadata日志纪录模式
提示metadata是定义文件系统中的数据
Root可以根据实际的工作情况来定义
将一个新的分区格式化成ext
# mke
将ext
# tune
提示
用e
2.#e Reiserfs文件系统
Reserfs 比ext 当前reserfs 只能在intel结构体系上使用 Reiserfs 文件系统一直被用于在高端的unix系统上
Reiserfs 特点
Reiserfs 日志机制在每个实际数据要修改之前把相应的日志写入到磁盘空间
Reiserfs对一些小的文件不分配inode
Reserfs基于平衡树(balanced tree)搜索
Reserfs可以管理上百G的数据
Reserfs 文件系统启动X -windows的速度比ext 文件的附加属性 # chattr +〔AadijS〕 filename 设置文件的附加属性 # lsattr filename 查看文件的附加属性
A
a; 只能向该文件追加内容
i
j
S
将原ext
# tune
# mke 常见的文件系统
Minix
ISO
NFS
提示 常用创建文件系统工具
Mkfs 可以用于创建各种文件系统
Mke
# Mk 文件系统的使用
设备
挂载点 Mount命令参数 挂载时使用mount命令
基本格式 Mount -t 指定文件系统的类型 Umount 卸载文件系统
Mount -o loop disk
Mount -o 选项指定挂载文件系统时的选项
ro
rw
nouser
user 配置/etc/fstab /etc/fstab 这个文件是文件系统的挂载信息
当mount一个文件系统时如果给出的参数不全
当系统启动时
这个文件同时 fstab 文件的格式 fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda fs_spec ; 这个字段表示要加载的文件系统所在的设备或远程文件系统
fs_file
fs_type
说明
Fs_options
加载文件系统可以指定的参数
ro
sync
user
quota
noauto
fs_dump ; 该选项被
fs_pass ; 这个字段表示fsck命令用来决定在启动时需要被扫描文件系统的顺序 检查当前系统中挂载的文件系统 # mount 使用mount命令 # cat /etc/fstab 使用/etc/fstab 文件 # cat /proc/mounts 使用内存镜像文件 卷标的含义
由于设备的文件名可能在硬盘结构发生变化时而改变
卷标纪录在ext
e # cat /etc/fstab
LABEL=/ / ext
/dev/hda
第二的意思就是说
第一行没有指明分区
手动添加新分区
# e # mkdir /new 最后在/etc/fstab 文件中加入
LABEL=/new /new ext
这样就ok了
查询 ext
# e Boot 系统返回信息
更改ext
# e
# e Data 系统返回信息 用卷标名来挂载文件系统 # mount —L data /data # mount LABEL=DATA /data
当你想创建
如果驱动器不包括任何这在使用的分区 文件系统的维护命令
Fsck /filesystem check
e
tun
resize
parted
linux有个parted 工具可以调整分区的大小
# parted /dev/had resize
意思是把分区
Linux系统将每隔
# tune
设置检查文件系统的时间间隔秒数(-i)为 文件系统访问控制列表 可以为多个用户和组建立文件访问控制列表
基本格式化为 Getfacl Setfacl Acl 访问控制列表
自定义访问控制列表是一种机制
(user 访问级别
(u
(u
(%
(%
每一个文件都有
m(umask)的限制
比如 自动挂载文件系统 系统通过autofs服务自动的挂载文件系统 需要后台的automount 进程
Autofs服务的开关由 /etc/init 主要应用在软驱和光驱的场合
如果该设备在一段时间内没有被使用 Autofs 服务的主要配置文件
/etc/auto 通过这两个文件来完成automount的设定
Auto 每一行的格式为
自动挂载目录的集合 参考文件(默认文件为/etc/auto
Auto
每一个行的格式为
挂载点(实际挂载点为 |