1. Linux的磁盘与文件系统
磁盘简介:磁盘存储器(magnetic disk storage),以磁盘为存储介质的存储器。它是利用磁记录技术在涂有磁记录介质的旋转圆盘上进行数据存储的辅助存储器;具有存储容量大、数据传输率高、存储数据可长期保存等特点。
磁盘物理组成:盘片(Platters)、轴(Spindle)、读写头(Read/Write Head)、读写头激励器(Actuator)、控制器(Controller)和电路板(a printed circuit board)。
“巨磁电阻”效应:非常弱小的磁性变化就能导致巨大电阻变化。
磁盘类型:
- IDE:(Integrated Drive Electronics)集成驱动器电子的缩写,俗称并口;本意是指把控制器与盘体集成在一起的硬盘驱动器,是一种硬盘的传输接口,另一个名称叫做ATA(Advanced Technology Attachment);具有性能价格比高、适用面广等特点。
- SATA:(Serial ATA)俗称串口;采用点对点的方式实现了数据的分组传输从而带来更高的传输效率。
- SCSI:(Small Computer System Interface)具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。
- SAS:(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术。和现在流行的SATA硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。
- FC:(Fiber Channel)光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。光纤通道是为在像服务器这样的多硬盘系统环境而设计,能满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对高数据传输率的要求。
- SSD:(Solid State Disk或Solid State Drive)称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元(DRAM或FLASH芯片)组成的硬盘。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的相同,在产品外形和尺寸上也与普通硬盘一致。由于固态硬盘没有普通硬盘的旋转介质,因而抗震性极佳。其芯片的工作温度范围很宽(-40~85℃)。目前广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。目前由于成本较高,正在逐渐普及到DIY市场。
存储类型:
- 直连式存储(Direct-AttachedStorage,简称DAS)依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等)。
- 网络化存储(Fabric-AttachedStorage,简称FAS)
网络化存储根据传输协议又分为:
- 网络接入存储(Network-AttachedStorage,简称NAS)存储设备通过标准的网络拓扑结构(如以太网)添加到一群计算机上。NAS是文件级的存储方法,重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今用户采用NAS较多的功能是用来文档共享、图片共享、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和个人用户的使用。
- 存储区域网络(StorageAreaNetwork,简称SAN)通过光纤通道交换机连接存储阵列和服务器主机,成为一个专用的存储网络。SAN提供了一种与现有LAN连接的简易方法,并且通过同一物理通道支持广泛使用的SCSI和IP协议。SAN不受现今主流的、基于SCSI存储结构的布局限制。特别重要的是,随着存储容量的爆炸性增长,SAN允许企业独立地增加它们的存储容量。SAN的结构允许任何服务器连接到任何存储阵列,不管数据置放在那里,服务器都可直接存取所需的数据。
2. 查看磁盘目录与容量
df:检查文件系统的磁盘空间占用情况
语法:df [-ahikHTm] [目录或文件名]
选项与参数:
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H :以 M=1000K 取代 M=1024K 的进位方式;
- -T :显示文件系统类型;
- -i :不用硬盘容量,而以 inode 的数量来显示
du:查看文件和目录磁盘使用的空间,直接到文件系统内去搜寻所有的文件数据
语法:du [-ahskm] 文件或目录名称
选项与参数:
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :列出总量而已,而不列出每个各别的目录占用容量;
- -S :不包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
ln:为某一个文件在另外一个位置建立一个同步的链接
语法:ln [参数][源文件或目录][目标文件或目录]
选项与参数:
- -b :删除,覆盖以前建立的链接
- -d :允许超级用户制作目录的硬链接
- -f :强制执行
- -i :交互模式,文件存在则提示用户是否覆盖
- -n :把符号链接视为一般目录
- -s :软链接(符号链接)
- -v :显示详细的处理过程
- -S :"-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
- -V :"-V<备份方式>"或"--version-control=<备份方式>"
- --help :显示帮助信息
- --version :显示版本信息
fdisk:是Linux 磁盘分区表操作工具
语法:fdisk [参数]
必要参数:
- -l :列出素所有分区表
- -u :与"-l"搭配使用,显示分区数目
- -s :<分区编号> 指定分区
- -v :版本信息
菜单操作说明:
- m :显示菜单和帮助信息
- a :活动分区标记/引导分区
- d :删除分区
- l :显示分区类型
- n :新建分区
- p :显示分区信息
- q :退出不保存
- t :设置分区号
- v :进行分区检查
- w :保存修改
- x :扩展应用,高级功能
3. 新增磁盘步骤
- 发现磁盘:
重启系统或在/sys下扫描SCSI:
- cd /sys/class/scsi_host
- echo "- - -" > /sys/class/scsi_host/host0/scan
fdisk–l查看新加的磁盘,如果没有则把host0换成host1或者host2尝试一下
- 分割磁盘:
创建分割槽的形式:
1)1-4 号尚有剩余,且系统未有extended:此时会出现让你挑选Primary / Extended 的项目,且你可以指定1~4 号间的号码;
2)1-4 号尚有剩余,且系统有extended:此时会出现让你挑选Primary / Logical 的项目;若选择p 则你还需要指定1~4 号间的号码;若选择l(L的小写) 则不需要配置号码,因为系统会自动指定逻辑分割槽的文件名号码;
3)1-4 没有剩余,且系统有extended:此时不会让你挑选分割槽类型,直接会进入logical 的分割槽形式。
- 格式化磁盘:
mkfs:在特定的分区上建立 linux 文件系统
语法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
选项与参数:
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
- device :预备检查的硬盘分区,例如:/dev/sda1
- -V :详细显示模式
- -c :在制做档案系统前,检查该partition 是否有坏轨
- -l bad_blocks_file :将有坏轨的block资料加到 bad_blocks_file 里面
- block :给定 block 的大小
超过16T硬盘分区和格式化:传统fdisk分区不支持2T以上的磁盘分区,而parted分区可以支持;ext4格式不支持16T以上的磁盘空间分区,必须使用xfs系统类型。
parted:对大容量硬盘进行分区
语法:parted [选项]... [设备 [命令 [参数]...]...]
选项与参数:
- -h, --help :显示求助信息
- -i, --interactive :在必要时提示用户
- -l, --list :显示所有磁盘设备的分区表
- -s, --script :不进入用户交互模式
- -v, --version :显示版本
- -m, --machine :打印出方便机器解析的输出
- -a, --alignment :对齐分区
对大容量硬盘进行格式化:mkfs.xfs [设备]
check NUMBER | 做一次简单的文件系统检测 |
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER | 复制文件系统到另一个分区 |
help [COMMAND] | 显示所有的命令帮助 |
mklabel,mktable LABEL-TYPE gpt | 创建新的磁盘卷标(分区表) |
mkfs NUMBER FS-TYPE | 在分区上建立文件系统 |
mkpart PART-TYPE [FS-TYPE] START END | 创建一个分区 |
mkpartfs PART-TYPE FS-TYPE START END | 创建分区,并建立文件系统 |
move NUMBER START END | 移动分区 |
name NUMBER NAME | 给分区命名 |
print [devices|free|list,all|NUMBER] | 显示分区表、活动设备、空闲空间、所有分区 |
quit | 退出 |
rescue START END | 修复丢失的分区 |
resize NUMBER START END | 修改分区大小 |
rm NUMBER | 删除分区 |
select DEVICE | 选择需要编辑的设备 |
set NUMBER FLAG STATE | 改变分区标记 |
toggle [NUMBER [FLAG]] | 切换分区表的状态 |
unit UNIT | 设置默认的单位 |
Version | 显示版本 |
- 检验磁盘:
fsck:用来检查和维护不一致的文件系统
语法:fsck [-t 文件系统] [-ACay] 装置名称
选项与参数:
- -t :给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
- -s :依序一个一个地执行 fsck 的指令来检查
- -A :对/etc/fstab 中所有列出来的 分区(partition)做检查
- -C :显示完整的检查进度
- -V :详细显示模式
- -R :同时有 -A 条件时,省略 / 不检查
- -d : 打印出 e2fsck 的 debug 结果
- -p :同时有 -A 条件时,同时有多个 fsck 的检查一起执行
- -a :如果检查有错则自动修复
- -r :如果检查有错则由使用者回答是否修复
- -y :选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复
- 挂载与卸除磁盘:
mount:挂载Linux系统外的文件
语法:mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
选项与参数:
- -V :显示程序版本
- -h :显示辅助讯息 <