04/08/2018 笔记

课堂笔记

1. su

切换用户时如果出现“-bash-4.2”,原因如下

  • 用户的家目录不存在
  • 用户家目录下缺少配置文件 *.bash
  • 家目录没有设置指定的用户和用户组

2. sudo

3.存储知识扩展- DAS, SAN,NAS

  •  服务器:整个服务器系统就像一个人,处理器就是服务器大脑,而各种总线就像是分布于全身肌肉中的神经,芯片组就像骨架,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方。
  • 存储接口类型IDE -在电脑中显示的是hda/ hdb; sas/ SATA- 显示为/dev/sda , /dev/sdb;阿里云- /dev/vda, /dev/vdb(硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与控制器之间的连接速度,在整个系统中,硬盘接口的性能高低对磁盘阵列整体性能有直接的影响); SCSI
  • IO (input & output)操作系统

当控制磁盘的控制器接到操作系统的读IO操作指令的时候,控制器就会给磁盘发出一个读数据的指令,并同时将要读取的数据块的地址传递给磁盘,然后磁盘会将读取到的数据传给控制器,并由控制器返回给操作系统,完成一个写IO的操作;同样的,一个写IO的操作也类似,控制器接到写的IO操作的指令和要写入的数据,并将其传递给磁盘,磁盘在数据写入完成之后将操作结果传递回控制器,再由控制器返回给操作系统,完成一个写IO的操作。单个IO操作指的就是完成一个写IO或者是读IO的操作。

随机访问(Random Access)与连续访问(Sequential Access)

  随机访问指的是本次IO所给出的扇区地址和上次IO给出扇区地址相差比较大,这样的话磁头在两次IO操作之间需要作比较大的移动动作才能重新开始读/写数据。相反的,如果当次IO给出的扇区地址与上次IO结束的扇区地址一致或者是接近的话,那磁头就能很快的开始这次IO操作,这样的多个IO操作称为连续访问。因此尽管相邻的两次IO操作在同一时刻发出,但如果它们的请求的扇区地址相差很大的话也只能称为随机访问,而非连续访问。

  顺序I O模式(Queue Mode)/并发IO模式(Burst Mode)

  磁盘控制器可能会一次对磁盘组发出一连串的IO命令,如果磁盘组一次只能执行一个IO命令时称为顺序IO;当磁盘组能同时执行多个IO命令时,称为并发IO。并发IO只能发生在由多个磁盘组成的磁盘组上,单块磁盘只能一次处理一个IO命令。

  • 存储的基本知识

存储的分类

根据服务器类型分为:

  • 封闭系统的存储(封闭系统主要指大型机)

  • 开放系统的存储(开放系统指基于Windows、UNIX、Linux等操作系统的服务器)

开放系统的存储分为:内置存储和外挂存储;

外挂存储根据连接的方式分为:直连式存储(Direct-Attached Storage,简称DAS)和网络化存储(Fabric-Attached Storage,简称FAS);网络化存储根据传输协议又分为:网络接入存储(Network-Attached Storage,简称NAS)和存储区域网络(Storage Area Network,简称SAN)。看下图,可以清晰的理解刚才的描述。

  •    DAS-服务器直接连接到存储设备,directly attached to storage
  •  SAN- 存储区域网络

相较于DAS,物理服务器与存储设备之间有一个物理交换机

光纤交换机- FC协议,网络交换机-iSCSI协议

  • NAS network attached storage

类似于百度云盘,各种网盘

4. 磁盘管理

  • df

第一列:磁盘分区的名字

第二列:磁盘的总大小,单位kb

第三列:已用多少

第四列:可用多少

第五列:已用百分比

第六列:挂载点 系统里的一个目录,linux磁盘不能直接访问,需要通过一个挂载点才能访问

  • df -T,可以显示每个分区的系统文件格式
  • #lsblk,也可以用来查看磁盘分区的情况
  • 文件系统-文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

ext2 , ext3, ext4,xfs(安全系数高,更稳定),NTFS

  • MBR (master boot record)-分区引导记录

每块硬盘不是每个分区,都只有一个主引导扇区,即该硬盘0号柱面,0号磁头的第一个扇区(扇区为数据存储的最小单元),大小为512字节。主引导扇区包含的MBR(硬盘主引导记MBR占446bytes)、DPT(分区表DP占64bytes)、MN(硬盘有效标志Magic Numbe占2byte。AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘),这3个区域是操作系统无关的,在每块硬盘上都存在;MBR是一段可执行程序,由各个操作系统写入不同的代码。MBR的存储空间限制为446字节,MBR所做的唯一的事情就是装载第二引导装载程序。Windows产生的MBR装载运行PBR;GRUB产生的MBR装载运行grldr

 MBR 分区机制的特点:

只能有四个主分区或者三个主分区加一个扩展分区 (以及在扩展分区中的任意数量的逻辑分区). 如果你有三个主分区加一个扩展分区以及除此之外的空闲空间,在空闲空间之上你无法创立分区。 

   在扩展分区里,逻辑分区的元数据被存储在一个链表结构中。如果一个环节丢失,该元数据之后的逻辑分区全部丢失。 

   MBR 只支持1个字节的分区类型编码,导致许多冲突。 

   MBR 使用32位的 LBA 值来存储分区扇区信息。LBA 的大小以及512B的扇区大小共同限制了硬盘可寻址大小最大为2TB. 如果使用 MBR, 2TB以外的空间无法使用。

命令 # fdisk 磁盘路径

  • GPT (GUID partition table) 

GPT意为GUID分区表,这是一个正逐渐取代MBR的新标准,它由UEFI辅住而形成的,这样就有了UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。它是统一可扩展固件接口标准的一部分,它使用全局唯一标识来标识设备,为每个分区提供了一个唯一硬盘 GUID 和一个唯一分区 GUID - 一个好的不依赖文件系统的引用分区和硬盘的方式。 

特点: 

任意分区数 - 取决于给分区表分配的空间 - 不需要扩展和逻辑分区。GPT ,默认包含了定义128个分区的空间。当用户想要更多分区时,他可以给分区表分配更多空间 (目前只有 gdisk 支持这一特性)。 

   使用64位 LBA 存储扇区数 - 最大硬盘可寻址大小为 2 ZB. 

  存储了备份头和分区表可于主要部分损坏时进行急救。 

   CRC32 校验值用于检测头和分区表的错误与损坏。

命令使用方法详见http://ask.apelearn.com/question/7243

预习笔记

1. # df

1)用# man df, 可以看到这个命令的定义df - report file system disk space usage, 汇报文件系统磁盘使用情况

2)-h 参数,可以显示磁盘容量单位(byte, 1000b=1KB, 1000kb=1MB, 1000MB=1GB, 1000GB=1TB...)

     # df -m, 可以以容量单位MB来显示

3)如下图所示,文件系统中含有“tmpfs”表明是临时文件系统,其挂载点中文件的内容在重启之后就会消失;挂载点“/dev/shm”为内存。

我们需要关注的是/dev/sda3 & /dev/sda1这种文件系统

注: # free,可以用来查看swap

4)# find -i, 用来查看分区下面有多少个inode以及inode的使用情况

系统分区之后进行格式化才可以写入内容,例如windows系统下格式化成NTFS/FAT文件系统,在linux系统中格式化的过程就是在创建inode,inode在格式化的过程中预分配好了,每个分区磁盘中有多少inode是事先弄好的(跟磁盘分区大小有关系)。有时我们看见磁盘中仍有剩余空间,但是无法写入的时候,我们可以查看一下# df -i来看一下磁盘中inode的使用情况,如果inode满了,即使磁盘空间有剩余也无法写入文件

2. # du

用来查看文件目录大小的

1)# du -sh directory_name/ file_name, 可以显示大小带单位

我们也可以用# du directory_name/file_name,来查看大小,以目录为例,会列出目录下所有子目录及文件的大小,没有针对性,也不显示大小单位,因此平常建议使用# du -sh

2) 之前我们学过用 # ls -lh,也可以查看大小。一下图为例/etc/passwd这个文件用# du -sh查看时大小显示为4K,用#ls -lh查看时大小为1.6K, 当文件小于4KB的时候会显示为4KB,这是因为磁盘分区格式化的时候块的概念,磁盘会被分成小块,一个小块就是4KB,当文件不够4KB的时候也会占用一个块,因此一个块只能有一个文件。

如果使用# du -sb来看大小所显示的内容就和# ls -lh所显示的一样了

3. 磁盘分区

日常工作中经常可以接触到给一个系统增加一些磁盘然后给这些磁盘划分分区,再进行挂载

1)增加磁盘,在工作环境中,服务器是支持硬盘热插拔的,但是在试验虚拟机环境中我们需要进行以下步骤,如图所示。

  • 右击虚拟机tab,选择设置



 

2)#fdisk (find disk)可以用来查看磁盘分区,# fdisk -l可以列出目前系统有的磁盘,新加的磁盘需要重启才能识别

如下图可以看出两块硬盘,第二块为1)新加的10G硬盘,磁盘名称为/dev/sdb

注:先科普分区的概念-主分区;扩展分区;逻辑分区;活动分区;主引导扇区
 

  • 主分区:一个硬盘的主分区也就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须得有一个主分区。实际上在早期的硬盘分区中并没有主分区、扩展分区和逻辑分区的概念,每个分区的类型都是主分区。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了。在具体的应用中,4个磁盘分区往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,引入了扩展分区和逻辑分区,并把原来的分区类型称为主分区。
  • 扩展分区:扩展分区是一个概念,实际上是看不到的。扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才行
  • 逻辑分区:在扩展分区上进行切割,变成一个个D盘,E盘,F盘什么的,但是这些盘综合起来就是一个扩展分区,这些盘是相互链接的,并不像主分区那样,4个之间相互独立互不干扰。逻辑分区用链表进行链接,如果E盘中的分区信息丢掉,操作系统就找不到F盘了。
  • 活动分区:活动分区是主分区,活动分区是系统分区,每次PC启动时,一块硬盘只能有一个活动分区,如果要启动windows就将windows的系统分区设为活动分区,计算机就会去那里装载引导程序(Ntldr或者Grub)并执行,如果要启动Linux就将Linux的系统分区设为活动分区
  • 主引导扇区:每块硬盘,对,每块硬盘不是每个分区,都只有一个主引导扇区,即该硬盘0号柱面,0号磁头的第一个扇区(扇区为数据存储的最小单元),大小为512字节。主引导扇区包含的MBR(硬盘主引导记MBR占446bytes)、DPT(分区表DP占64bytes)、MN(硬盘有效标志Magic Numbe占2byte。AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘),这3个区域是操作系统无关的,在每块硬盘上都存在;MBR是一段可执行程序,由各个操作系统写入不同的代码。MBR的存储空间限制为446字节,MBR所做的唯一的事情就是装载第二引导装载程序。Windows产生的MBR装载运行PBR;GRUB产生的MBR装载运行grldr
    MBR:正如上面所说的那样,它是一段程序,长度为446字节,作用是加载bootloader的。
     

3)# fdisk也可以用于给硬盘分区

  • 再回到linux给硬盘分区,之前提到的新添加的硬盘的名字为/dev/sdb,想要给/dev/sdb分区,使用# fdisk /dev/sdb, 进入到下图,输入“m”获取帮助信息
  • 常用的命令有:n/p/d/w
  • n- 新建一个分区
  • d-删除一个分区
  • p-查看分区列表
  • w-保存
  • 输入n,新建一个分区,可以发现如下选择分区的类型: p (primary)-主分区;e(extended)-扩展分区(仅仅是个壳子,真正写数据占用空间的是逻辑分区);l(logical)-逻辑分区,与Windows系统中的概念是一样的。用#fdisk 分区有一个格式或者称谓叫MBR分区,传统的分区方式,其特点时单个分区容量最大为2TB,超过便不能用# fdisk分区;分区有限。主分区加上扩展分区只能最多有4个,而且扩展分区最多只能有1个。如果想要多个分区就在扩展分区下创建逻辑分区。

        主分区+扩展分区小于等于4

  • 输入p,创建主分区,显示分区号1-4,输入默认分区号即可,起始扇区和last扇区(有时也以磁柱为单位)两行为定义分区大小,再用p看,可以看到新建的主分区1-/dev/sdb1, 我们可以照此依次创建2-4号的主分机
  • 如上图所示四个主分区已经创建完毕,如果我们相加扩展分区,则需要删除一个主分区

       输入命令“d”,来进行删除,默认从4开始删除,可以再输入p来查看4号主分区是否被删除

  • 再次输入“n”,选择扩展分区“e”,创建扩展分区,操作方式跟主分区一致,再用p查看

注:blocks-为分区大小单位,单位为k;Id为分区类型: 83-主分区、逻辑分区,5-扩展分区

  • 如果此时再输入“n”,变不会再提示分区类型(因为分区数已满),只能添加逻辑分区,如下图所示
  • 如果输入“q”就是不保存退出,退出之后可以继续划分(如下图所示),先创建一个扩展分区1号分区,再创建一个3号分区主分区,然后再创建一个逻辑分区5号分区,我们在“p”可以发现一个规律,主分区号可以留空,而逻辑分区号则连续不可以留空并且从5号开始依次排列下去。
  • 最后输入“w”,保存并推出,如果想要删除已经保存好的分区,则可以再次使用# fdisk 磁盘名称来进行编辑分区

4. 磁盘格式化

在Windows系统中主要支持NTFS和FAT两种文件系统,现在已NTFS为主,那么在CentOS7里面支持默认的xfs文件系统,可以用# cat /etc/filesystems来看系统支持的文件系统格式,就可以发现xfs格式

在7之前的CentOS的版本中都是ext4...

1)可以用#mount命令查看一个分区的文件系统,会列出许多分区,我们可以只关注以/dev开头的分区,可以看出文件系统都是xfs

2) 我们使用xfs来给新的分区格式化,使用# mke2fs

  • # mke2fs -t, 可以指定想要格式化的文件系统,例如# mke2fs -t ext4 但不支持xfs
  • # mke2fs -b, 可以指定块的大小

        一般不会把块的大小定义的过大,例如8KB,但是如果分区内主要存储高清图片、视频音乐等,我们就可以把块大小设置的大一些,加速提取;但如果分区磁盘存储文件大小很小,建议制定块大小为2048b

但在工作中保持默认4KB的大小就可以了

  • # mke2fs -m, 用来指定分区预留的空间大小,这个预留空间是给root的,是磁盘最大化使用

        #mke2fs -m 1/0.1 /dev/sdb1 = # mkfs.ext4 -m 0.1 /dev/sdb1

        但是文件系统xfs不支持这种用法

  • 在我们格式化的时候可以发现下图highlight出来的那一行,大概为1个inode对应4个块

我们可以用# mke2fs -i来制定多少个字节来对应一个inode, 例如 # mke2fs -i 8192 -t ext4 /dev/sdb1, 来制定分区中8个字节来对应一个inode,相比上图inode数量变多了

3)命令# mkfs. 文件系统名称 分区名,也可以达到# mke2fs的效果,并支持xfs文件系统

4)现在我们用#mount是无法查看/dev/sdb1分区的文件系统,是由于文件系统并没挂载到任何挂载点上,但是可以用# blkid 分区名,来查看没有挂载的分区


 

5. 磁盘挂载

只有格式化之后才可以挂载文件系统,磁盘若想访问必须挂载到一个挂载点上,挂载点就是目录

1)# mount, 可以用来挂载挂载点, # mount 盘符/分区号 挂载点; # mount /dev/sdb /mnt, 在格式化好的分区挂载挂载点之前,我们用# df -l, 是无法查看到新加入的磁盘的,但是/dev/sdb挂载到/mnt/目录下之后,就可以看到新的磁盘分区了

如下图

2)可以用# umount 盘符、分区号、挂载目录,来卸载挂载点

如果目前处于想要卸载的挂载点下,系统会提示目前目录忙,我们可以用# mount -l来强制卸载

3)# mount命令下default的选项有rw (read& write), suid(可以设置set_uid权限), dev, exec(是否可执行), auto(自动挂载), nouser(不允许普通用户挂载), and async(不会实时把内存的写入内容重复到磁盘中)

  • # mount -o (option) -remount, 重新挂载
  • # mount -o ro (read only)/ rw (read & write)

4)/etc/fstab下面包括了一个系统开机自动挂载的磁盘、分区,我们用# vi /etc/fstab,来进行编辑,可以发现以下内容

  • 第一列为设备号,除了UUID我们也可以写/dev/sdb

      可以用# blkid, 来查看UUID,可以用来挂载或更改fstab的配置文件

  • 第二列,挂载点
  • 第三列为分区格式
  • 第四列挂载选项,defaults不要改,保持默认即可
  • 第五列,系统备份,保持为0即可,This field is used for these filesystems by the dump(8) command to determine which filesystems need  to be dumped
  • 第六列,设置优先级,来使系统重启时来检测磁盘是否有问题的,总共有0、1、2

          The  root  filesystem  should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2;Filesystems within a drive will be checked sequentially, but filesystems on  different drives will be checked at the same time to utilize parallelism available in the hardware.
              If the sixth field is not present or zero, a value of zero is returned and fsck will  assume  that  the filesystem does not need to be checked.

          注: #man 不仅可以查看命令,也可以查看配置文件,查看配置文件时,不需要写绝对路径, man+配置文件名就可以了

6. 手动增加SWAP空间

1)首先在文件系统中模拟一个磁盘,可以用# dd (此命令可以用来操作磁盘),如果我们想设置一个100M的磁盘小分区,可以写成 #dd if=/dev/zero of=/tmp/newdisk bs=1M count=100

2)创建好磁盘之后,需要给磁盘格式化,用# mkswap -f /tmp/newdisk

3)然后再用# swapon, 来进行挂载,# swapon /tmp/newdisk, 前后可以使用# free -m来查看是否swap容量有变。我们可以看到从1906M变成了2006,增加了100M

4)如果想要卸载使用# swapoff,就可以。# swapoff /tmp/newdisk,在用# free -m查看发现swap空间少了100M

7. LVM

那个可以方便的给磁盘空间做扩容和缩容,但是存在局限性,例如在文件受到损害需要恢复时,由于LVM的复杂性,恢复起来存在难度.

如下图所示有两块硬盘,A/B,A上有两个分区,B有一个分区,三个分区为物理卷,再组成卷组(物理卷-磁盘分区的集合),在卷组的基础上分成逻辑卷,再格式化,再挂载

1)首先准备磁盘分区

2) 创建物理卷,使用# pvcreate (physical volume create), 先安装 # yum install -y lvm

注: 我们可以用# yum provides "/*/command",来安装命令

可以用# pvdiskplay or pvs来查看所有的物理卷

3)创建卷组, # vgcreate (volume group create) 语法为 # vgcreate (卷组名)(要添加的物理卷)

用# vgdiskplay or vgs来查看卷组

# vgremove, 来删除卷组

4)创建逻辑卷, # lvcreate -L (指定大小) -n (name)volumegroup_name (从哪个卷组里面划分)

5)格式化 # mkfs. ext4 /dev/vg1/lv1

注:xfs的文件系统会影响之后的扩容或者缩容的操作,因此最好使用ext4文件系统

6)进行挂载,例如# mount /dev/vg1/lv1 /mnt/

注:在挂载完成后,我们可以发现挂载的目录变成了/dev/mapper/vg1-lv1, 但是用# ls查看,可以发现/dev/vg1/lv1 和/dev/mapper/vg1-lv1指向的是同一个文件

7)逻辑卷扩容

  • ext文件系统的扩容
  • xfs文件系统的扩容

先执行 # lvresize -L 300M /dev/vg1/lv1, 再执行 xfs_growfs /dev/vg1/lv1

再用df 查看可发现逻辑卷容量以变

注: xfs不支持缩容

8)缩容

具体操作步骤如下,最后还需重新挂载

9)扩容卷组

扩容逻辑卷的最大限度为卷组的大小,因此我们可以把没有使用的/dev/sdb3加到vg1中, # vgextend /dev/sdb3, 然后在进行对lv1的扩容

8. 磁盘故障小案例

在我们开机的时候如若发现以下不正常的界面,则有可能是磁盘挂载出现问题

1)输入root密码

2)修改/ect/fstab,用“dd”来删除下图中highlight出来的磁盘挂载,然后再进行reboot,应该就没有问题了

猜你喜欢

转载自blog.csdn.net/EM_F_Z/article/details/81455640