磁盘分区知识的重点:java
(1)给磁盘分区的实质就是针对硬盘的0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号、扇区号和柱面号。node
(2)给磁盘分区的工具是fdisk(适合给小于2T的磁盘分区),parted(擅长给大于2T的磁盘分区,也能够给小于2T的磁盘分区),首选fdisk,只有大于2T时才会去选partedlinux
(3)一块磁盘的分区表仅有64个bytes大小,每一个分区表要占用16个字节,所以一块磁盘支持四个分区表信息,即主分区+扩展分区的总量不超过4个。数据库
(4)磁盘分区是按柱面进行划分的。缓存
(5)扩展分区不能直接使用,还须要在扩展分区的基础上建立逻辑分区才行。安全
(6)扩展分区有本身的分区表所以扩展分区下面的逻辑分区有多个。服务器
一块硬盘的分区方式以下组合之一less
(1)任意多个主分区,但要求1<=主分区数量<=4运维
例如:一块硬盘能够分为4个主分区3个主分区2个主分区或者1个主分区ide
(2)扩展分区能够和主分区组合,但要求2<=(主分区+扩展分区)数量<=4
例如:3个主分区+1个扩展分区或者2个主分区+1个扩展分区或1个主分区+1个扩展分区。当总分区的数量大于4个的时候,必须提早分一个扩展分区。
(3)若是要分红四个磁盘分区的话,那最多能够有两种:
P+P+P+P
P+P+P+E
其中的P为主分区Primary,E为扩展分区Extended
范例1:若是要将一块大硬盘暂时分红四个分区,同时,还但愿有其余的空间可让我在将来须要的时候再进行分区,那么该如何分区?
3P+1E剩下的空间保留
2P+1E剩下的空间保留
1P+1E剩下的空间保留
范例2:一台机器6块600g硬盘,raid5后总大小3T,此时没法装系统为何?
系统盘大于2T是不能装系统的
解决办法:
方法1:作raid5后,不要重启装系统,而是在raid 界面,继续分一个小的虚拟磁盘vd 200G,用这个200G的虚拟磁
盘装系统,装完系统后再把剩下的2.8T经过parted分区。
方法2:先拿一块盘raid0,剩下5块作raid5,在raid0装系统。
方法3:装系统时经过gpt分区格式,便可安装系统。
范例3:假若有一块SAS硬盘,要想把磁盘分红6个可使用的磁盘分区,那么每一个磁盘分区再linux系统下的数字编号是多少?
说明:
因为硬盘在Primary+Extended最多能够有四个,所以在linux系统下,会默认将1~4的分区编号保留下来给主分区和扩展分区使用,逻辑分区不能够占用1-4分区编号。
因此因为要求的分区总数为6个,必须有一个扩展分区,主分区能够有1-3个,可是不管分几个主分区逻辑分区的编号都会从5开始计算。
若是是1P+1E,则分区编号为:/dev/sda1,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8,/dev/sda9
若是是2P+1E,则分区编号为:/dev/sda1,/dev/sda2,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8
若是是3P+1E,则分区编号为:/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda5,/dev/sda6,/dev/sda7
IDE硬盘:IDE接口的硬盘称为/dev/hda
SATA,SAS硬盘:SCSI接口的硬盘称为/dev/sda
在linux系统中,是经过设备名来访问设备的,访问名存放在“/dev”目录中。
设备名称的定义规则以下,其余的分区能够以此类推:
系统的第一块IDE接口硬盘称为/dev/hda
系统的第二块IDE接口硬盘称为/dev/hdb
系统的第一块SCSI接口硬盘称为/dev/sda
系统的第二块SCSI接口硬盘称为/dev/sdb
每一个分区则使用磁盘名称对应的编号表示,如:
系统的第一块IDE接口硬盘的第1个分区称为/dev/hda1
系统的第二块IDE接口硬盘的第1个分区称为/dev/hdb1
系统的第一块SCSI接口硬盘的第1个分区称为/dev/sda1
系统的第二块SCSI接口硬盘的第一个分区称为/dev/sdb1
注意:
一、分区数字编号1~4留给主分区和扩展分区,逻辑分区编号只能从5开始。
二、IDE硬盘设备名称均以/dev/hd开头不一样硬盘编号以此是/dev/had、/dev/hdb。
三、SCSI/SAS/SATA/USB接口硬盘的设备名均以/dev/sd开头,不一样硬盘编号依次是/dev/sda,
/dev/sdb,/dev/sdc…
一、最少要有“/”根分区和swap分区。
二、swap(交换分区)的做用:虚拟内存,swap分区的大小=1.5*物理内存容量,若是内存大于8-16G做为swap便可。
三、建议设置独立的/boot分区。
linux引导分区,存放系统引导文件,如linux内核等,全部文件大小只有几十M,所以该分区设置100-200M,通常服务器的分区方式:“/boot”,“swap”“/”三个分区。
基本做用:网站数据量很大的时候,单块盘装单个盘存放不下了,购买多块盘,又不想单个盘存放数据,就须要工具把全部的硬盘整合成一个大磁盘,再在这个大磁盘上分区(虚拟磁盘)存放数据。
它的另一个功能就是多块盘放在一块儿能够冗余(备份)。
1byte=8bit 1K=1024byte 1M=1024K
1G=1024M 1T=1024G 1PB=1024T
RAID有多种整合方式,RAID 0 1 5 10
有RAID卡后,通常磁盘就会插到RAID卡上,而不是直接插到主板上了。
互联网公司服务器会自带RAID卡(自带主板,独立RAID卡),RAID卡上也有缓存。
冗余从好到坏:raid1 raid10 raid5 raid0
性能从好到坏:raid0 raid10 raid5 raid1
成本从低到高:raid0 raid5 raid1 raid10
互联网公司:
单台服务器,很重要可是盘很少,系统盘就用raid1。
数据库服务器,主库raid10,从库raid5/raid0(为了维护成本,raid10)。
Web服务器,若是没有太多数据的话,raid5,raid0(单盘)。
RAID 0(条带):写入RAID阵列的数据被分红了“组块”各类组块在构成阵列的驱动器均匀分布。
RAID 1(镜像模式):如同“镜像”这一名称暗示的同样,在镜像中,写入一个磁盘的数据被复制到了第二块磁盘上(被称为“镜像磁盘”)。
RAID 4(带校验的条带):linux内核支持的这种配置试图集中前两个RAID级别的优点:经过平行写入数据获取速度,而又能对损坏有着很强的可靠性。把一个额外的磁盘做为“校验盘”,能够得到这种可靠性。
RAID 5(条带+分布校验):RAID 5 在功能上与RAID 4 彻底同样,可是解决了校验盘上的瓶颈问题。RAID 5 不是专门把一块磁盘用于校验,而是让校验信息均匀地分布在全部组成磁盘中。
RAID 10:最少四块硬盘,将四块硬盘分红两组,每两组作RAID 1,而后两组RAID 1作RAID 0。
LVM全称(Logic Volume Management)逻辑卷管理,它的最大用途是能够灵活的管理磁盘的容量,让磁盘分区能够随意放大和缩小,便于更好的应用磁盘的剩余空间,若是强调性能和备份那么仍是应该使用raid功能,而不是LVM。
用RAID最直接的好处是:
(1)提高数据安全性。
(2)提高数据的读写性能。
(3)提供更大的单一逻辑磁盘数据容量存储。
添加一块100M的硬盘
(1)先用fdisk –l查看
[root@linzhongniao ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00045e4d Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 261046 8192000 83 Linux /dev/sda310461237 1536000 82 Linux swap / Solaris /dev/sda41237261111037696 83 Linux Disk /dev/sdb: 106 MB, 106954752 bytes 64 heads, 32 sectors/track, 102 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
(2)fdisk分区
fdisk 接磁盘设备
[root@linzhongniao ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x78ca99bb. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
这个地方提示:要用fdisk –cu命令
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). 警告:与dos兼容模式已被弃用。 这是强烈推荐 关闭模式(命令'c')并将显示单元更改成 部门(命令“u”)。
(3)fdisk –cu方式分区
[root@linzhongniao ~]# fdisk -cu /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x90d74776. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help):
在这个地方输入m(menu),m是菜单的意思
Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition 《==添加一个分区 o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
按n建立分区
按e建立扩展分区:分区方式错误演示
输入p查看分区
这就不能建立扩展分区了由于没有e,要先建立主分区,扩展分区最多不能超过3个。
(3)建立分区先建立主分区再建立扩展分区
建立主分区
[root@linzhongniao ~]# fdisk -cu /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xc6e370f5. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition《==删除一个分区 l list known partition types 《==查看分区类型及对应的id m print this menu 《==打印菜单 n add a new partition 《=建立分区 o create a new empty DOS partition table p print the partition table 《=打印分区表信息 q quit without saving changes《==退出不保存 s create a new empty Sun disklabel t change a partition's system id《==改变分区系统的ID建立swap分区 u change display/entry units v verify the partition table w write table to disk and exit《==保存并退出,没有动数据,动的是64位字节分区表 x extra functionality (experts only) Command (m for help): n Command action e extended p primary partition (1-4)这里按p建立主分区 p Partition number (1-4):
输入1,会看到第一分区的起始位置默认设计从2048开始的,直接敲回车默认建立的分区从2048开始。
Partition number (1-4): 1 First sector (2048-208895, default 2048):
而后能够给结束的扇区也能够用“+”加号,这里咱们加10M
接着用上面的方法建立一个编号为2的主分区,大小为10兆
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First sector (22528-208895, default 22528): Using default value 22528 Last sector, +sectors or +size{K,M,G} (22528-208895, default 208895): +10M Command (m for help): P Disk /dev/sdb: 106 MB, 106954752 bytes 64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xc6e370f5 Device Boot Start End Blocks Id System /dev/sdb12048 22527 10240 83 Linux /dev/sdb2 22528 43007 10240 83 Linux
好下来咱们建立2个10M的主分区,共建立四个主分区,再接着建立分区会怎么样?会提示您必须删除一些分区,并首先添加一个扩展分区。“You must delete some partition and add an extended partition first” 由于扩展能够分多个,主分区只能分四个这是受分区表控制的。
删除分区用d
好上面已经分了三个主分区了,把剩下的分区都给扩展分区,输入n,按e直接按回车
建立逻辑分区,分区编号从5开始
若是想用LVM就要查看分区类型了,默认的linux分区是83,而LVM的分区类型是8e
创建LVM(逻辑卷)类型的分区就要改变分区系统类型的ID了,以下所示建立LVM类型分区
Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 8e Changed system type of partition 5 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 106 MB, 106954752 bytes 64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3202f5e9 Device Boot Start End Blocks Id System /dev/sdb12048 22527 10240 83 Linux /dev/sdb2 22528 43007 10240 83 Linux /dev/sdb3 43008 63487 10240 83 Linux /dev/sdb4 63488 208895 727045 Extended /dev/sdb5 65536 86015 10240 8e Linux LVM 保存按w写入分区表 Command (m for help): p Disk /dev/sdb: 106 MB, 106954752 bytes 64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3202f5e9 Device Boot Start End Blocks Id System /dev/sdb12048 22527 10240 83 Linux /dev/sdb2 22528 43007 10240 83 Linux /dev/sdb3 43008 63487 10240 83 Linux /dev/sdb4 63488 208895 727045 Extended /dev/sdb5 65536 86015 10240 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
用partprobe命令通知系统内核分区已经改变
[root@linzhongniao ~]# cat fdisk.txt n p 1 +10M w q [root@linzhongniao ~]# fdisk /dev/sdb<fdisk.txt
a.linux下最经常使用的分区工具,通常是装完系统后进行分区,装系统以前的分区都用系统ISO里面的工具分,或者raid里的分小磁盘。
b.fdisk只能root权限用户使用。
c.fdisk适合于对装系统后的剩余空间进行分区,例如:安装系统时没有所有分区,或者安装系统后添加分区。
d.不能对于大于2T的文件系统进行分区
e.fdisk分区的实质是修改0磁头0磁道1扇区的前446字节以后的64字节的分区表信息,不破坏数据。可使用fdisk分区的磁盘大小必须小于2T,若是大于2T或者小于2T的,分区要用parted
查看分区用fdisk –l
[root@linzhongniao ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00045e4d Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 261046 8192000 83 Linux /dev/sda310461237 1536000 82 Linux swap / Solaris /dev/sda41237261111037696 83 Linux Disk /dev/sdb: 106 MB, 106954752 bytes 64 heads, 32 sectors/track, 102 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3202f5e9 Device Boot Start End Blocks Id System /dev/sdb1 2 11 10240 83 Linux /dev/sdb2 12 21 10240 83 Linux /dev/sdb3 22 31 10240 83 Linux /dev/sdb4 32 102 727045 Extended /dev/sdb5 33 42 10240 8e Linux LVM
也能够查看/proc/partitions文件
[root@linzhongniao ~]# cat /proc/partitions major minor #blocks name 80 20971520 sda 81 204800 sda1 828192000 sda2 831536000 sda3 84 11037696 sda4 8 16 104448 sdb 8 17 10240 sdb1 8 18 10240 sdb2 8 19 10240 sdb3 8 20 1 sdb4 8 21 10240 sdb5
传统的MBR分区方式,有一个局限:
没法使用超过2T的硬盘的分区(或单个分区超过2T),若是大于2T就要用GPT分区的理念。
parted的操做都是实时的也就是说执行了一个分区命令,他就实实在在的分区了,而不像是fdisk那样按w才建立分区。
实验:准备一块100M的盘
(1)交互式分区
[root@linzhongniao ~]# parted /dev/sdb GNU Parted 2.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
输入help看相关的命令
Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help align-check TYPE Ncheck partition N for TYPE(min|opt) alignment check NUMBER do a simple check on the file system cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER mkpart PART-TYPE [FS-TYPE] START END make a partition mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system move NUMBER START ENDmove partition NUMBER name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resize NUMBER START END resize partition NUMBER and its file system rm NUMBERdelete partition NUMBER select DEVICEchoose the device to edit set NUMBER FLAG STATEchange the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNITset the default unit to UNIT version display the version number and copyright information of GNU Parted
先调一下分区的类型改为gpt,修改分区类型用mklabel命令
(parted) mklabel gpt Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes
建立一个10M主分区
(parted) mkpart primary 0 10 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary `(parted)`
分一个10M交换分区swap
(parted) mkpart primary linux-swap 11 21 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary 2 11.0MB 21.0MB 10.0MB primary
分一个10M的逻辑分区(这个地方比较特殊不用建立扩展分区)
(parted) mkpart logical ext4 22 32 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary 2 11.0MB 21.0MB 10.0MB primary 3 22.0MB 32.0MB 10.0MB logical
删除分区,用rm
提示:咱们只关注mkpart命令和rm删除分区命令便可
(parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary 2 11.0MB 21.0MB 10.0MB primary 3 22.0MB 32.0MB 10.0MB logical (parted) rm 3 (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary 2 11.0MB 21.0MB 10.0MB primary
(2)非交互式建立分区
parted /dev/sdb mklabel gpt yes parted /dev/sdb mkpart primary 0 10 Ignore parted /dev/sdb mkpart primary linux-swap 11 12 Ignore parted /dev/sdb mkpart logical ext4 22 32 Ignore parted /dev/sdb p
演示:
[root@linzhongniao ~]# parted /dev/sdb mklabel gpt yes Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Information: You may need to update /etc/fstab. [root@linzhongniao ~]# parted /dev/sdb mkpart primary 0 10 Ignore Warning: The resulting partition is not properly aligned for best performance. Information: You may need to update /etc/fstab. [root@linzhongniao ~]# parted /dev/sdb mkpart primary linux-swap 11 12 Ignore Warning: The resulting partition is not properly aligned for best performance. Information: You may need to update /etc/fstab. [root@linzhongniao ~]# parted /dev/sdb mkpart logical ext4 22 32 Ignore Warning: The resulting partition is not properly aligned for best performance. Information: You may need to update /etc/fstab. [root@linzhongniao ~]# parted /dev/sdb p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 107MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End SizeFile system Name Flags 1 17.4kB 10.0MB 9983kB primary 2 11.0MB 12.0MB 1000kB primary 3 22.0MB 32.0MB 10.0MB logical
可使用一个分区构建swap,也可使用dd建立一个swap
[root@linzhongniao ~]# fdisk -cu /dev/sdb 分红一个区/dev/sdb1 用mkswap格式化分区命令,把普通分区/dev/sdb1格式化成swap分区
查看一下内存
添加swap分区
关掉swap分区
swapoff /dev/sdb1
dd的只是一个特殊文件,它占用磁盘的分区
[root@linzhongniao ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128 128+0 records in 128+0 records out 134217728 bytes (134 MB) copied, 1.8708 s, 71.7 MB/s [root@linzhongniao ~]# ls -lh /tmp/swap -rw-r--r--. 1 root root 128M Jul 19 20:30 /tmp/swap
格式化分区
添加swap分区
[root@linzhongniao ~]# swapon /tmp/swap
企业案例场景:
swap在工做中,特别是java环境,程序写的有问题,会发生内存泄露,swap分区可能会被占用。
解决办法:
让开发改程序,运维临时加大swap分区,就是用上面的方法。不用重启系统能够先用swapoff,再用swapon。
inode是当磁盘备份区格式化的时候诞生的,格式化分区的实质是建立文件系统,对于ext一、二、三、4文件系统格式化以后就会生成必定数量的inode和block。
(1)分区与文件系统的关系
经过fdisk命令对一个磁盘进行分区后,并不能直接挂在目录存放数据实体,还须要进行格式化操做,才能进行挂载并存放数据。
为何须要格式化呢?这是由于磁盘分区在没有格式化以前,操做系统是没法识别系统上磁盘分区格式的,也就没法存取文件目录属性和权限等内容。分区就至关于给房子打隔断并不破坏数据,文件系统就是装修。
(2)ext2的文件系统细节
操做系统中的数据分为文件内容和文件属性两部分,文件系统内容就是文件的实体数据(block里面),而文件属性就是文件类型、权限、属主、修改信息等,还包括一个指针。
文件系统会将文件的属性内容存放到磁盘系统的inode中。操做系统还会记录文件系统的总体信息与superblock(存放文件系统的元数据信息)中,这个superblock包括整个文件系统的inode和block的总的数量。
(3)什么是文件系统
文件系统就是一种存储和组织计算机数据文件的机制或方法,它使得对计算机文件系统内数据的访问和查找变得更容易、简单,如ext二、ext三、ext四、xfs(Centos 7.x)、zfs和nfs都是文件系统。
这些内容均可以用dumpe2fs来查看
[root@linzhongniao ~]# dumpe2fs /dev/sdb1|less
超级组块记录的信息:
超级块:记录文件系统的控制和管理信息
block和inode的个数和大小,及其已用和未用数量
文件系统的载入时间、最近一次写入数据的时间、最近一次执行fsck进行磁盘检查的时间等。
有效位:为0已载入,为1未载入
组描述:记录本块组从何处开始
块位示图:使用位示图记录inode的使用状况。
inode区:各inode组成的区域,每一个inode都有一个惟一编号
数据块区:各block组成的区域,用于存放文件数据
SAS/STAT硬盘文件系统选择:
a.xfs有关门户的数据库MySQL的业务
b.ext4 视频,流媒体。数据库,小文件业务也能够,能够用默认的
c.ext2 没有日志,蓝汛的cache业务,CDN网站加速服务的
常规应用:
对于Centos5.x系列,常规应用就选默认的ext3文件系统便可。
对于Centos6.x系列,常规应用就选默认的ext3文件系统便可。
对于Centos7.x系列,常规应用就选默认的xfs文件系统便可。
查看支持的文件系统的格式
[root@linzhongniao ~]# ls /lib/modules/`uname -r`/kernel/fs autofs4 configfs exportfs fat jbdmbcache.ko nls xfs btrfs cramfsext2 fscache jbd2 nfs squashfs cachefiles dlm ext3 fuse jffs2 nfs_common ubifs cifsecryptfs ext4 gfs2 lockd nfsdudf
操做系统支持不表明文件系统软件已经安装了,格式化不支持mkfs;那就须要安装文件系统软件
[root@linzhongniao ~]# mkfs mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
格式化命令mkfs参数:
-b 指定块设备大小默认是4096
-i 指定inode大小默认是256
-t 指定文件系统至关于mkfs.ext4(2或3)
[root@linzhongniao ~]# mkfs mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
格式化完成以后会出现下面内容,执行下面命令
tune2fs –c -1 /dev/…
挂载:mount
参数:
-t 指定文件系统类型
磁盘与目录的容量:df du
df:列出文件系统的整个磁盘使用量
du:评估文件系统的磁盘使用量(经常使用于评估目录所占容量)
(1)将挂载后容量结果以易读的容量格式显示出来查看的是block:df –h
(2)将挂载后的各个分区中可用的inode数量列出:df –ih
(3)df –hT,查看挂载状况,显示文件系统类型
(4)查看/proc/mounts文件也能够查看挂载状况
(5)查看分区查看/proc/partitions文件
(6)查看文件系统的内部细节 dumpe2fs /dev/sdb1
(7)磁盘检查用fsck(ext2文件系统用e2fsck),当磁盘出现故障了可当作磁盘检查,可是注意:没坏的磁盘必定不要用,通常是机器起不来了,磁盘有坏道。fsck –C –f ext3 /dev/sdb1
(8)tune2fs 列出/dev/sdb1的super block内容。tune2fs –l(小写的L) /dev/sdb1
(9)查看磁盘设备的UID 和文件系统类型,blkid /dev/sdb1
(10)megacli查看raid的信息,监控raid会用到
(11)ipmitools 查看硬件信息的工具,监控硬件的时候会用到
(12)resize2fs调整文件系统的大小(LVM,drbd扩容)
将/dev/sdb1每次开机自动挂载/tmp/sdb1
编辑/etc/fstab
[root@linzhongniao ~]# tail -1 /etc/fstab UUID=d9e7daa8-34f0-4b9a-825b-e2aa49a03921 /tmp/sdb1 ext4 defaults 0 0
写入:/dev/sdb1(挂载的设备也能够是UID,用blkid查看) /tmp/sdb1(挂载点) ext4(文件系统类型) dufaults(挂载的参数选项) 0(是否备份,设置成 1或2备份) 0(是否开机检查,至关于fsck)