磁盘管理

来源:互联网 发布:七天网络微信二维码 编辑:程序博客网 时间:2024/05/04 02:09
1.磁盘管理
扇区,磁道,柱面

分区(Partition)

MBR(Master Boot Record):主引导记录(512byte)
      前446bytes:BootLoader (引导程序)
      后64bytes:  每16bytes标识一个分区(4个主分区)(主分区+扩展分区<=4)
      后2bytes: Magic Number  (标记MBR是否有 效)

分区:按柱面来分区

2.链接
2.1硬链接 ( ln  abc.txt abc2.txt)
       只能对文件创建,不能应用于目录
       不能跨文件系统
       创建硬链接会增加文件被链接的次数;

2.2软链接(符号链接)   (ln -s abc.txt  abc2.txt)
       可应用于目录
       可以跨文件系统
       不会增加被链接文件的链接次数
        其大小为指定的路径包含的字符个数


设备文件:
    块设备: 按块为单位,随机访问的设备 (硬盘)
    字符设备: 按字符为单位,线性设备  (键盘)

/dev
    主设备号(major number):标识设备类型
    次设备号(minor number):标识同一种类型中不同设备

创建特殊文件:
mknod [OPTION]... NAME TYPE [MAJOR MINOR]

eg: mknod  mydev c 66 0   (创建一个名为mydev的字符设备,主设备号为66,次设备号为0)


硬盘设备的设备文件名:同一种类型下的不同设备
IDE,ATA:hd
SATA,SCSI,USB: sd
   a,b,c,..来区别  如:sda  , sdb ;


管理磁盘分区:(只适合MBR分区)
 fdisk: 
     p: 显示当前硬件的分区,包括没有保存的改动
     n: 创建新分区(e:扩展分区;p主分区)
     d:删除一个分区
     w:保存退出
     q:不保存退出
     t:修改分区类型
     l:显示所有支持的分区类型

------------------------------------
eg: 将磁盘/dev/sdb分为一个分区
(只适合MBR分区)

          
[root@localhost /]#  fdisk -l    查看所有分区情况
          
[root@localhost /]#  fdisk /dev/sdb       对该磁盘进行管理
Command (m for help): n           ----n表示增加一个分区
Command action
   e   extended
   p   primary partition (1-4)
p                                              ----p表示选择主分区 
Partition number (1-4): 1         ----1表示分区编号
First cylinder (1-13054, default 1):      ----分区起始柱面选择
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):     ---分区结尾柱面选择
Using default value 13054

Command (m for help): w          ---保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
       [root@localhost /]#  mkfs -t ext4 /dev/sdb1     ----将刚刚的创建的分区/dev/sdb1 格式化成ext4格式
       [root@localhost /]#  mount /dev/sdb1 /data     ---将/dev/sdb1挂载在目录/data
       [root@localhost /]# df -h                                  ---查看分区情况
--------------------------------


3.
文件系统管理
(重新创建文件系统会破坏原有文件)

文件系统类型:ext2,ext3,ext4等

cat /proc/filesystems  查看当前系统能够支持的文件系统

mkfs:make file system (创建文件系统命令)
   -t:  指定文件系统类型
mkfs -t ext2=mkfs.ext2
mkfs -t ext3=mkfs.ext3
  eg:  mkfs -t ext2  /dev/sda5  在磁盘/dev/sda5上创建ext2的文件系统
    
mke2fs :专门管理ext系列文件
    -j: 创建ext3类型文件系统
    -b BLOCK_SIZE :指定块大小,默认4096,可用取值为1024,2048或4096
    -L LABEL: 指定分区卷标
    -m #: 指定预留给超级用户的块数百分比 (默认为5)
    -i # :  用于指定为多少个字节的空间创建一个inode,默认为8096;这里给出的数值应该为块大小的2^x倍
    -N # :指定inode个数
    -F :强制创建文件系统
    -E :用于指定额外文件系统属性

eg: mke2fs -m 3 -b 2048  -j   /dev/sda6   在/dev/sda6上创建ext3的文件系统,预留给超级用于使用的块数为3%,块大小为2048.

blkid 查看磁盘设备设备相关属性(超级用户)
eg: blkid /dev/sdb1   (输出结果: /dev/sdb1: UUID="fbdca1a3-051d-49eb-b5bc-7d8f723174ed" TYPE="ext4" )

e2label  :查看或定义卷标
   eg:  e2label  /dev/sdb1  datalib  (将/dev/sdb1的卷标设置为datalib )
   eg:  e2label  /dev/sdb1   (查看/dev/sdb1的卷标)
  
tune2fs :调整文件系统的属性
     -j:   不损害原有数据,将ext2升级为ext3
     -L:  设定或修改卷标
     -m #: 调整超级用户的块数百分比
     -r #:  调整超级用户的块数
     -c #:指定挂载次数达到#次之后进行自检,0或-1表示关闭此功能
     -i #:  没挂载使用多少天后进行自检,0或-1表示关闭此功能
     -l: 显示超级块中的信息

dumpe2fs: 显示文件系统属性
   eg: dumpe2fs  /dev/sdb1    查看/dev/sdb1的详细信息,包括各个块组的信息
   eg:  dumpe2fs -h /dev/sdb1 (约等于tune2fs -l /dev/sdb1 )

fsck:  检查并修复linux文件系统
   -t   FSTYPE: 执行文件系统类型(不指定也可以,会调用blkfs查看文件系统)
   -a:自动修复

e2fsck:专用于修复ext2/ext3文件系统
    -f:强制检查
    -p:自动修复



挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系予以移除

mount: 挂载
用法: mount 设备  挂载点 
      设备可以是: 设备文件 如/dev/sda6  
                   卷标: LABEL=""
                   UUID:  UUID=""

      挂载点:目录 (1.此目录没有被其他进程使用;2.目录得事先存在;3.目录中的原有的文件将会暂时影藏。)
 
mount  [option]
    -a:表示挂载/etc/fstab文件中定义的所有文件系统
    -n:默认情况下,mount命令每挂载一个设备,都会把挂载信息保存至/etc/mtab文件,使用-n选项意味着挂载设备时,不把信息写入此文件
    -t FSTYPE:指定正在挂载设备上的文件系统的类型;(不指定也可以,会调用blkfs查看文件系统类型)
    -r :只读挂载
    -w:读写挂载 
    -o:指定额外的挂载属性,也即指定文件系统启用的属性
          remount :重新挂载当前文件系统
eg: mount /dev/sdb1  /db  (将设备/dev/sdb1挂载到目录/db)
eg: mount   显示当前系统已经挂载的设备及挂载点

umount:卸载某个文件系统
    umount 设备
    umount 挂载点
eg: mount /dev/sdb1  (等于mount /db ) 卸载/dev/sdb1




cpu:time slice 时间片
Memory:
I/O设备: 多路复用

swap分区: 
page out == swap in  物理内存到swap分区
page in == swap out  swap分区到物理内存 

存储速度: cpu寄存器(1ns)》缓存(10ns)》内存(10ms)》磁盘(秒级)

free :查看物理内存和交换分区的情况(默认单位为字节)
eg: free -m   以兆为单位显示
buffers(缓冲区):为了避免过慢的设备受到冲击的
cached(缓存区):为了重复使用(将慢设备中的一些数据缓存起来,供快设备使用)


mkswap :创建交换分区命令
eg: mkswap /dev/sda8   将/dev/sda8创建为交换分区

swapon :启用交换分区
swapoff: 关闭交换分区
eg: swapon /dev/sda8  启用/dev/sda8为交换分区
eg: swapon -a  启用所有定义在/etc/fstab文件中的交换设备


回环设备
loopback,使用软件来模拟实现硬件

dd命令:
   dd  if=数据来源  of=数据存储目标

eg: dd if=/dev/sda of =/mnt/usb/mbr.backup bs=512 count=1   (备份mbr)
eg:dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1  (将备份的mbr还原)

例子:当交换分区不够用,并且没有多余的分区时,可以创建一个文件用于作为交换分区(性能不行,只能救急)
dd if=/dev/zero of=/var/swapfile bs=1M count=1024  (创建一个1G的文件)
mkswap /var/swapfile   (格式化为swap)
swapon /var/swapfile  (启用,可以通过free -m查看交换分区前后的变化)


文件系统的配置文件/etc/fstab
   操作系统初始时,会自动挂载此文件中定义的每个文件系统
/etc/fstab文件格式:
要挂载的设备挂载点文件系统类型挂载选项转储频率(每多少天做一次完全备份;0表示不备份)文件系统检测次序(只有根为1)


fuser:验证进程正在使用的文件或套接字
    -v :查看某文件上正在运行的进程
    -k :杀掉访问某文件的进程
    -m :配合-k选项, 杀掉跟挂载点相关的进程
eg: fuser -v  /mnt   查看有哪些用户和进程访问了目录/mnt
eg:  fuser -k /mnt  杀掉正在访问/mnt的进程
eg: fuser -km /mnt/usb    终止正在访问挂载点/mnt/usb的所有进程



4.
4.1
压缩,解压缩命令
第一种:gzip : .gz (只能压缩文件)
        gzip /path/to/somefile   (压缩完成后删除原文件)
        gunzip /path/to/somefile.gz  (解压)
eg: gzip /opt/testfile    压缩文件testfile,生成testfile.gz
eg:  gunzip /opt/testfile.gz  解压(同gzip -d testfile.gz)

zcat /opt/testfile.gz    不解压的情况下,查看.gz文件的内容

第二种: bzip2 : .bz2  (只能压缩文件)
    比gzip有着更大压缩比的压缩工具,使用格式近似
   bzip2 /path/to/somefile (压缩完成后删除原文件,如果不想删除加上-k选项)
   bunzip2  /path/to/somefile.bz2  (解压)

eg:bzip2 /opt/testfile  压缩文件testfile,生成testfile.bz2
eg: bunzip2 /opt/testfile.bz2  解压(同bzip2 -d /opt/testfile.bz2)

 bzcat /opt/testfile.bz2   不解压的情况下,查看.bz2文件的内容

第三种: xz :.xz  (只能压缩文件)
     xz /path/to/somefile   (压缩完成后删除原文件,如果不想删除加上-k选项)
     unxz /path/to/somefile.xz  (解压)

eg: xz /path/to/somefile  压缩生成somefile.xz
eg: unxz /path/to/somefile.xz 解压(同xz -d /path/to/somefile.xz )

xzcat /path/to/somefile.xz  解压的情况下,查看.xz文件的内容






5.raid
5.1 raid(硬件级别对数据的保护)
raid0 :条带
    性能提升:读,写
    冗余能力(容错能力):无
    空间利用率: nS
    至少2块盘

raid1 :镜像
    性能表现: 写性能下降,读性能提升
    冗余能力:有
    空间利用率:1/2
    至少2块盘

raid5:
     性能表现:读,写都提升
     冗余能力:有
     空间利用率: (n-1)/n
     至少3块盘

raid10: (raid01一样)
      性能表现:读,写都提升
      冗余能力:有
      空间利用率: 1/2
      至少4块盘

raid50: 读写性能都提升,冗余能力有,空间利用率(n-2)/n,至少需要6块盘
jbod: 无性能提升,无冗余能力,空间利用率100%,至少2块盘


5.2 LVM: Logical Volume Manager(逻辑卷管理)
MD: meta device  (/dev/md#)     做软raid
DM: Device Mapper               做LVM2

层次:
第一层:Logical Volume (LV 逻辑卷)
       -- LE: Logical Extend
第二层:Volume Group (VG 卷组)
       -- PE:Physical Extend 盘区
第三层:Physical Volume (PV 物理卷)


管理:
物理卷PV
    创建PV: pvcreate
    查看PV: pvdisplay
             pvs
    挪动PV上的数据(以便减小VG大小): pvmove  (eg: pvmove /dev/sda10)
    删除PV数据:pvremove  (eg:pvremove /dev/sda10)


卷组VG
 创建VG: vgcreate  ( 参数s表示指定PE大小,默认为4M)(eg: vgcreate myvg /dev/sda[10,11]    将sda10和sda11创建为名为myvg的卷组)
 移除VG: vgremove  (eg: vgremove myvg    删除名为myvg的卷组)
 查看VG信息: vgdisplay
              vgs
 减小VG大小(移除PV): vgreduce  (eg: vgreduce myvg /dev/sda10 将sda10从卷组myvg中移除)
 扩展VG大小: vgextend  (eg: vgextend myvg /dev/sda12  将sda12扩展到卷组myvg中)
  

逻辑卷LV
   创建LV: lvcreate (eg: lvcreate -L 500G -n testlv myvg   在卷组myvg中创建一个500G的逻辑卷testlv)
   查看LV: lvdisplay 
   移除LV: lvremove  (eg: lvremove /dev/mapper/myvg-testlv  移除逻辑卷 )
 
   扩展LV:(不影响原先数据)
       lvextend(物理边界)
         -L  [+]#  (eg: -L +5G  扩展5G  ; -L 5G 扩展到5G)
              (eg: lvextend -L  50G /dev/myvg/testlv 扩展到50G)
       resize2fs(逻辑边界)
             eg: resize2fs -p /dev/myvg/testlv  扩展逻辑卷(-p选项表示有多少扩展多少)
  
    缩减LV:(注意: 确保缩减后的空间依然能保存原有的所有数据df -lh;
                    在缩减前应该强行检查文件,以确保文件系统处于一致性状态e2fsck -f;
                    不能在线缩减,得先卸载umount;)
       resize2fs  /dev/myvg/testlv  40G   缩减到40G(逻辑边界)
       lvreduce(物理边界)
            eg: lvreduce -L 40G /dev/myvg/testlv   缩减到40G

   快照卷:(注意:生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小;
                  快照卷应该是只读的;
                  跟原卷在同一卷组内。)
 
    lvcreate  -s -L 30G -n snapshotlv -p r /dev/myvg/testlv   对逻辑卷testlv创建大小为30G,权限为只读的快照卷snapshotlv(参数-s表示创建快照卷)
    lvremove /dev/myvg/snapshotlv  移除快照卷

-------------------------------------------
eg:对分区类型为8e的/dev/sdb3创建逻辑卷,并能自动挂在到目录/data
    pvcreate /dev/sdb3                        --物理卷创建(查看为pvdisplay)
    vgcreate myvg /dev/sdb3              --创建名为myvg的卷组
    
lvcreate -n mydata -L 10G myvg   --对卷组myvg进行创建逻辑卷的操作,逻辑卷名为mydata
    mkfs -t ext4  /dev/myvg/mydata     --格式化刚刚创建的逻辑卷
 
   /dev/myvg/mydata                /mydata         ext4    defaults        0 0    (/etc/fstab加入改行,表示开机能自动挂载)
--------------------------------------------
0 0
原创粉丝点击