> Linux教程 > linux基础 >

linux 下的逻辑卷(LVM)

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不需要格式化用tunefs 就可以

  从ext 变成ext 可以不用作任何的改动

  Ext 特性

          高效性 非法关机后恢复ext文件系统只要秒左右

          数据完整性避免非法关机对数据完整性的破坏

          文件系统的速度 对磁盘驱动器读写进行了优化

          数据的转化 ext-ext   ext-ext

          多种日志模式对所有数据进行日志纪录模式只对metadata进行日志纪录而不对数据进行日志纪录

  Data=journal    所有数据日志纪录模式  

  Data=writeback  对metadata日志纪录模式

  提示metadata是定义文件系统中的数据即数据中的数据

  Root可以根据实际的工作情况来定义在系统的工作速度和数据完整性来选择

  将一个新的分区格式化成ext文件系统

  # mkefs   -j     /dev/hda

  将ext 转换成ext文件系统

  # tunefs  -j     /dev/hda

  提示 将ext文件系统转换成ext不需要将分区卸载直接转换就可以不要忘记把/etc/fstab 里的ext改成ext

  用efsck 修复ext文件系统

   # umount   /dev/hda    先卸载该分区.

  2.#efsck  fy  /dev/hda  修复该分区

  Reiserfs文件系统

    年 hans  reiser 把reserfs文件系统在网上公布

  Reserfs  比extfs要快的的多

  当前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文件系统

  #  tunefs  -j     /dev/hda  这是直接转换

  #  mkefs  j    /dev/hda   这是格式化转换

  常见的文件系统

  Minix  linux第一个支持的文件系统比较古老现在每人用了

  ISO 标准的cdrom 文件系统

  NFS  是sun公司推出的网络文件系统准许多台计算机共享一个文件系统

  提示 redhat linux默认是不支持ntfs 文件系统的我们可以自己编辑kernel来让系统支持ntfs但是可能会对数据造成损坏

  常用创建文件系统工具

  Mkfs  可以用于创建各种文件系统由-t参数来指定

  Mkefs  创建ext/ext文件系统

  # Mkfs   -j    /dev/hda

  文件系统的使用

  设备就是一个具体的文件系统可以用设备名或卷标名来表示

  挂载点必须是一个目录当一个目录下有文件时则在该文件系统被挂载后原文件暂时无法访问直到当前挂载的文件被卸载以后才能继续访问

  Mount命令参数

  挂载时使用mount命令

  基本格式 mount 〔-参数〕  〔设备名〕  〔挂载点〕

  Mount  -t   指定文件系统的类型

  Umount  卸载文件系统

  Mount  -o  loop   diskiso  挂载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)

  elabel 命令可以查询和更改ext文件系统的卷标名

  # cat  /etc/fstab

  LABEL=/      /        ext       default       

  /dev/hda     /usr      ext      default       

  第二的意思就是说把/dev/hda这个分区挂载到/usr这个目录上

  第一行没有指明分区意思是把LABEL(卷标)为/ 的分区mount到/ 分区上 这样写的好处就是当你的硬盘从主板上的IDE(hda)移动到IDE(hdc)上的时候系统仍然可以自动的挂载正确的分区

  手动添加新分区自定义卷标

  #  elabel   /dev/hdax   /new

  #   mkdir     /new

  最后在/etc/fstab 文件中加入

  LABEL=/new      /new       ext      default       

  这样就ok了 下次重启后系统会自动挂载这个/new分区

  查询 ext/ext 的卷标名

  #  elabel    /dev/hda    查看

  Boot                       系统返回信息

  更改ext/ext的卷标名

  # elabel   /dev/hda       data   更改

  # elabel    /dev/hda             查看

  Data                               系统返回信息

  用卷标名来挂载文件系统

  #  mount  —L   data   /data

  #  mount   LABEL=DATA   /data

  当你想创建删除分区或重新划分分区大小分区所在的设备就不能是正在使用的(分区不能被挂载并且交换空间也不能被启动)达到这个目录的最简单的方法就是进入救援模式中引导系统由于已经加载的文件系统的信息会自动的写道/etc/mstab中所以用户只需要给出设备或挂载点中的一个参数即可

  如果驱动器不包括任何这在使用的分区你可以使用umount来卸载分区使用swapoff 命令来关闭硬盘驱动器上的交换空间

  文件系统的维护命令

  Fsck  /filesystem   check  用于检查和修复文件系统

  efsck 检查和修复ext/ext文件系统

  tunfs 更改ext文件系统的属性

  resizefs 更改ext文件系统的大小

  parted  更改多种文件系统的大小

  linux有个parted 工具可以调整分区的大小但是他是有限制的如果向增大一个分区那么该分区后面必须有没有使用的空间而且这个分区没有被mount

  # parted      /dev/had    resize         

  意思是把分区  调整从柱面 到柱面结束重新启动后就会生效了

  Linux系统将每隔次启动系统或天对文件系统进行一次检查这些属性可以用tunefs 来设定(时间间隔的周期以秒指定)

  #  tunefs   -i      /dev/hdb

  设置检查文件系统的时间间隔秒数(-i)为就是禁止根据时间的周期进行检查

  文件系统访问控制列表

  可以为多个用户和组建立文件访问控制列表

  基本格式化为 mount   -o   acl

  Getfacl

  Setfacl

  Acl 访问控制列表

  自定义访问控制列表是一种机制每一个acl由一个用户标识和组标识结合的整体用户标识与组标识配合相对应的访问权限组成了

  (usergroupmode)

  访问级别

  (ugrwx) 特定的一个用户特定的组

  (u%rwx)特定的一个用户 任意的组

  (%grwx)任意一个用户特定的组

  (%rwx)任意一个用户任意一个组

  每一个文件都有组的访问权限模式如果有多个类型的访问权限条目那么较详细的条目的优先级较高在acl中设置某一个特定用户的读写权限如果设置了m(ask) 那用户的权限还要受到

  m(umask)的限制原来是要两个权限相与一下才四用户的正确权限

  比如 设置userA 的权限为r+w而m设置为r那么userA的权限为r

  自动挂载文件系统

  系统通过autofs服务自动的挂载文件系统

  需要后台的automount 进程

  Autofs服务的开关由 /etc/initd/autofs脚本来控制

  主要应用在软驱和光驱的场合

  如果该设备在一段时间内没有被使用那么autofs会自动卸载该设备

  Autofs 服务的主要配置文件

  /etc/automaster  和   /etc/automisc

  通过这两个文件来完成automount的设定

  Automaster 的每一行表示一个自动挂载的集群

  每一行的格式为

  自动挂载目录的集合     参考文件(默认文件为/etc/automisc)

  Automisc 文件中纪录的则是每一个自动挂载的设备

  每一个行的格式为

  挂载点(实际挂载点为/自动挂载的目录集合/挂载点)  自动卸载的时间    设备文件名

(责任编辑:IT)