Linux文件系统学习

linux中的各硬件设备的文件名

Linux操作系统中,任何物理存储设备接入系统后都是以文件的形式存在,且不同类别的设备接入系统后被识别的文件类型不同,这里我们用下表来详细说明:

  • IDE接口设备在Linux系统中映射的文件以“hd"为前缀;
  • SCSI设备映射的文件以“sd"为前缀;

    具体的文件命名规则是以英文字母排序的。如系统中第1个IDE设备为hda,第2个为hdb。

  • 设备接入系统后,我们可以用以下这些命令对设备进行查看:
  1. fdisk -l :查看磁盘的分区情况
  2. lsblk:查看设备使用情况,即哪些磁盘的哪些分区正在被谁使用
  3. blkid :查看设备管理方式(设备上的文件系统类型)及设备id
  4. df:查看正在被系统挂载的设备
  5. cat /proc/partitions :查看被系统识别的设备

linux分区

  linux系统一般是作为服务器的,分区采用lvm分区。之前lvm分区采用2TB的分区大小,现在硬盘越来越大超过2TB很常见,对于超过2TB的话,需要采用parted分区模式。

  前面表格中,/dev/sda是指整个硬盘,实际使用中一般都会有分区,也就是/dev/sda1, /dev/sda2这样的。

  分区通常以数字序号为标识,例如第一个IDE设备的第一个分区命名为/dev/hda1,第一个SCSl设备的第一个分区命名为/dev/sda1。

  有一些分区已经挂载了,使用lsblk命令,可以看到各个分区被挂载到哪个目录。

1. 使用fdisk进行分区

  使用fdisk -l 可以查看当前分区情况,使用fdisk /dev/sdb增加新分区,如下图:

 

 

 详细分区步骤参考:Linux 用fdisk进行磁盘分区(图文过程)_Wyn_的博客-CSDN博客_fdisk /dev/sda

2. 使用parted命令进行分区

 parted分区步骤

  • 1 通过fdisk-l 或lsblk查看磁盘, df -h使用情况可以看到新增/dev/sdb盘没有挂载
  • 2 给/dev/sdb分区 (parted /dev/sdb 命令)
  • 3 格式化磁盘类型(可以直接将磁盘分区进行格式化)
  • 4 创建主分区
  • 6 将格式化好的磁盘挂载到指定目录下
  • 9 实现系统启动自动挂载,修改etc/fstab文件

 详细分区步骤参考:linux使用parted分区步骤 parted分区教程-百度经验 (baidu.com)

 linux支持的文件系统

  因为每种操作系统所需要的文件属性/权限并不相同,为了存放这些文件所需要的数据,故而磁盘在进行分区完毕后需要进行格式化,之后操作系统才能够使用这个文件系统。
  传统的磁盘与文件系统应用中,一个分区就只能被格式化为一个文件系统,所以我们可以说一个文件系统就是一个磁盘分区,但是由于新技术的使用,如lvm等,可以将一个分区格式化为多个文件系统,也能将多个分区合并成为一个文件系统,所以我们在格式化时已经不再针对磁盘分区来格式化,通常我们称一个可挂载的数据为一个文件系统而不是一个分区。

 Linux LVM管理

参考:系统运维|Linux LVM简明教程

  逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

  LVM使用分层结构,如下图所示。

 图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

  相关操作命令如下:

  • 准备物理卷(PV):pvcreate /dev/sdb1,  刚创建的磁盘分区是用来储存物理卷的。LVM可以使用不同大小的物理卷。
  • 检查物理卷的创建情况:pvdisplay 
  • 删除物理卷:pvremove /dev/sdb1
  • 创建名为'volume-group1'的卷组,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3创建:vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3
  • 显示卷组情况:vgdisplay
  • 删除卷组:vgremove volume-group1
  • 创建逻辑卷(LV):lvcreate -L 100M -n lv1 volume-group1   (创建一个名为'1v1'、大小为100MB的逻辑卷)
  • 查看逻辑卷:lvdisplay
  • 逻辑卷已经准备好后,可以格式化和挂载逻辑卷,就像其它ext2/3/4分区一样:      
    1. mkfs.ext4 /dev/volume-group1/lv1
    2. mkdir /lvm-mount
    3. # mount /dev/volume-group1/lv1 /lvm-mount/
  • 删除逻辑卷:lvremove /dev/volume-group1/lv1
  • 扩展LVM卷:
    1. 卸载掉lv1卷:卸载掉lv1卷:umount /lvm-mount/
    2. 设置卷的大小为200M:lvresize -200M /dev/volume-group1/lv1
    3. 检查磁盘错误:e2fsck -/dev/volume-group1/lv1
    4. 扩展文件系统:resize2fs /dev/volume-group1/lv1
    5. 检查LV的状态:lvdisplay
  • 缩减LVM卷:
    1. 卸载掉lv1卷:卸载掉lv1卷:umount /lvm-mount/
    2. 检查磁盘错误:e2fsck -/dev/volume-group1/lv1
    3. 缩小文件系统,更新ext4信息:resize2fs /dev/volume-group1/lv1 100M
    4. 减少逻辑卷大小:lvresize -L 100M /dev/volume-group1/lv1
    5. 检查LV的状态:lvdisplay
  • 卷组操作:
    1. 检测现在卷组状态:vgdisplay volume-group1
    2. 创建一个2GB分区sdc1,类型为LVM(8e):fdisk /dev/sdc
    3. 创建一个物理卷 /dev/sdc1:pvcreate /dev/sdc1
    4. 将新增加的物理卷添加到已存在的卷组'volume-group1'上:vgextend volume-group1 /dev/sdc1
    5. 检查VG的状态:vgdisplay

 Linux文件系统挂载 

参考:Linux文件系统挂载 - xiaohaoge - 博客园 (cnblogs.com)

挂载

Linux 下设备不挂载不能使用,不挂载的设备相当于没门没窗户的监狱(进不去出不来),挂载相当于给设备创造了一个入口(挂载点,一般为目录)

例如Linux访问U盘数据

image-20191203144528306

image-20191203144537469

挂载通常是将一个存储设备挂接到一个已经存在的目录上,访问这个目录就是访问该存储设备的内容。对于Linux系统来说,一切皆文件,所有文件都放在以根目录为起点的树形目录结构中,任何硬件设备也都是文件形式。

mount命令

mount命令可以将指定的文件系统挂载到指定目录(挂载点),在Linux系统下必须先挂载后才能访问设备资料。

  • 新的硬盘插到机器上,分区、格式化文件系统后,此时可以可以存放数据了
  • 此时的硬盘插到linux上,也只是读取出了一个封闭的盒子,无法读写
  • 和linux的文件夹进行关联、挂载后,即可通过访问被挂载的文件夹,访问到硬盘的数据

Linux挂载iSCSI磁盘

https://blog.csdn.net/chouzhi7161/article/details/100749726

https://www.cnblogs.com/iouwenbo/p/10229055.html

基本配置,操作流程

 https://www.cnblogs.com/happy1983/p/9212349.html

账户认证配置

https://blog.csdn.net/manom/article/details/89331283

缓存可能导致的问题 

https://www.bilibili.com/video/BV1wk4y127xT?spm_id_from=333.337.search-card.all.click&vd_source=bc80f16f88602529d0b160438ca63028 服务端配置

https://www.bilibili.com/video/BV1ut4y1Q7D2?spm_id_from=333.999.0.0&vd_source=bc80f16f88602529d0b160438ca63028 客户端配置

 

服务端:

0.准备后端存储硬盘 lsblk查看硬盘

安装服务端软件targetcli:

yum -y install targetcli

设置启动服务

systemctl restart target 

systemctl enable target

输入targetcli进入tareget配置

创建backstore后端存储

cd /backstores/block

create backend(自定义名称) /dev/sdb

创建target共享名:iqn

cd /iscsi

create iqn.2022-10.com.example:server(iqn.yyyy-mm.主机名:服务器描述)

创建lun,关联共享名和后端储存设备

cd /iscsi/iqn....:server/tpg1/luns

create /backstores/block/backend

创建acl访问口令,知道口令的客户端可以访问

cd /iscsi/iqn...:server/tpg1/acls

create iqn.2022-08.com.example:client(客户端名称)

创建门户(portal)的监听ip与端口

cd /iscsi/iqn....:server/tpg1/portals

create 客户端ip 端口号

create 10.11.100.129 3260

删除命令为 delete 10.11.100.129 3260

配置用户密码

cd /iscsi/iqn....:server/tpg1/acls/iqn...:client/

set auth userid=test

set auth password=test

返回保存退出

cd /

saveconfig

exit

systemctl restart target

 

 

客户端配置:

安装软件包

yum -y install iscsi-initiator-utils

启动iscsi服务

systemctl start iscsi

设置开机启动

systemctl enable iscsi

配置iscsi initiator名称

vi /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn....:client 服务端中配置的名称

配置用户名密码,取消注释,修改账户密码

vi /etc/iscsi/iscsid.conf

node.session.auth.authmethod=CHAP

node.session.auth.username=test

node.session.auth.password=test

重启服务

systemctl restart iscsid

发现查到iscsi设备 服务端

iscsiadm --mode discovery -type sendtargets -portal 10.11.100.128(服务端ip)

简写:iscsiadm -m discovery -t st -p 10.11.100.128

连接登录设备

iscsiadm --mode node --targetname iqn....:server --portal 10.11.100.128 --login

或者

iscsiadm -m node --login

修改自动加载

vim /var/lib/iscsi/nodes/iqn...:server/*/default

node.conn[0].startup=automatic 将manual改为自动

重启服务

 

posted @ 2022-08-26 11:00  延木  阅读(65)  评论(0编辑  收藏  举报