一.磁盘分区和文件系统挂载
针对不同应用场景,选择的存储方案也会不同,因此有了下边三种不同的存储方式。
块存储:块存储主要是将裸磁盘空间整个映射给主机使用的。块存储就是在物理层这个层面对外提供服务,使用它的系统,又用自己的文件系统格式化。这样一旦被一个系统使用,就独占了
文件存储:在文件系统一层对外提供服务,系统只用访问文件系统一级就可以,各个系统都可以根据接口去访问。主机A可以直接对文件存储进行文件的上传和下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了。利于共享
对象存储:通过对象结构--Bucket存储桶进行存储文件,每个文件都有一个Object ID,用户通过对象ID去寻找到位置从而得到对象数据。只能创建文件夹,对文件进行移动,删除,不能直接对文件进行修改。
fdisk -l /dev/sda:查看硬盘信息
fdisk /dev/sdb:创建分区
partprobe /dev/sdb:在不重启的情况下更新分区列表,让系统识别/dev/sdb新建分区
此时还不能真正使用,还需要格式化mkfs.ext4(centos 6)制作文件系统,到这里还只是对硬件进行处理,实际使用中我们是使用目录对文件进行操作,所以需要把对应盘映射到某个目录中,对目录进行操作就是对对应盘进行操作,这个就叫做挂载。
【就好像装修房子,画好了设计图,还需要进行施工】
mount /dev/sdb1 /sdb1:将分区/dev/sdb1挂载到指定目录/sdb1
总流程
fdisk /dev/sdb 新建分区
↓
partprobe /dev/sdb 更新分区表
↓
mkfs.ext4 /dev/sdb1 格式化制作文件系统
↓
mount /dev/sdb1 /sdb1 挂载
df:查看挂载信息
同一个文件系统可以挂载多次,但是共享
umount:卸载
umount -l:强制卸载
如果没有挂载到源设备,会寻找到父节点的源设备,若还没有则不断向上查找
mount -o remount,noexec /home:让 /home目录下不能执行可执行文件(注意逗号)
mount -o remount,rw /:重新挂载根目录为可读写
du -sh /etc/:统计目录大小
Linux文件包括内容和源数据
源数据存放在inode中,存放权限、属组等信息;
内容则存放在内容block中
ls -i /etc/passwd.bak:查看文件Innode信息
dd if=/dev/zero of=/sdb5/test bs=1G count=1
dd写数据,输入文件是/dev/zero,输出文件是/sdb5/test,大小是1个G,总计1个文件,可以用来写数据,也可以用来测试硬盘写入速度
磁盘用完的两种情况
1)空间剩余但inode分配完,个人电脑情况少见,但服务器上多见
2)文件过大,但inode使用量很少
二.硬链接和软连接
一个分区的文件系统
没有真正意义上的删除,只有覆盖行为才是删除。super block把要删除文件的inode号 free,等下次有要写进文件时,把free的Inode号分配之后,这个文件才算真正被删除
软连接,类似于windows的快捷方式,两个文件的inode号不一样
ln -s 源路径 目标路径
删除源文件后,连接就不起作用,但删除连接文件对源文件无影响
软连接图示
硬链接,两个文件inode号一样
ln 源路径 目标路径
删除源文件或删除链接文件,对对方都不影响
修改源文件或链接文件,对方文件都会改变
软连接可以跨分区,因为它指向文件名,而硬链接不可以,因为它指向inode号
对于存储位置有多个存储分区,跨分区就是比如存储在第一个分区的内容同时又存在了第二个分区内