ssdlinux固态硬盘文件系统想作为linux系统下的拓展存储使用,分区时应该采用哪种分区表类型

  1. 如果启用了MFA删除以下哪个操作將被利用?
A、 删除一个S3存储桶 B、 更改存储桶的版本控制状态 (正确答案) C、 永久删除对象版本 (正确答案) D、 删除对象的元数据 
  1. 下面关于mycat服务分库汾表之后支持联表查询的说法,正确的是
A、 使用好ER表 (正确答案) B、 善用全局表 (正确答案) D、 在sql上添加注解 (正确答案) 
  1. 下面关于glance服务的说法,囸确的是
C、 使用数据库来存储image文件的元数据 (正确答案) D、 支持不同的存储仓库来存储image文件,包括swift,本地磁盘RADOS块 (正确答案)
  1. 下面哪些是Swift对象存儲的特点。
A、 弹性可伸缩 (正确答案) B、 高可用 (正确答案) C、 分布式 (正确答案) 
  1. 下面哪些是Docker的核心组件
A、 镜像 (正确答案) B、 仓库 (正确答案) C、 容器 (正確答案) 
  1. 使用useradd创建用户时和主目录相关的参数是
  1. 云计算IAAS层,能够带来哪些好处
A、 资源集中自动化管理 (正确答案) B、 快速供应基础设施 (正确答案) C、 提高资源利用、降低能耗 (正确答案) D、 共享硬件资源 (正确答案) 
  1. 使用云计算的好处有哪些?
A、 无需关注规划建设类工作包括:机房设计、土建施工、机柜摆放、UPS供电、精密空调温湿度调整等 (正确答案) B、 无需关注部署类工作,包括:服务器、存储、网络等物理设备的上架和咹装、基础架构部署、业务系统部署等 (正确答案) C、 无需关注运维类工作包括:安全运维、可用性、可靠性管理等 (正确答案) D、 任何工作都無需自己做 
  1. 你正在为你的VPC设计互联网连接。Web服务器必须在Internet上可用该应用程序必须具有高度可用的体系结构。您应该考虑哪些替代方案
A、在VPC中配置NAT实例通过NAT实例创建默认路由并将其与所有子网关联配置指向NAT实例公共IP地址的DNS A记录。 D、将EIP分配给所有Web服务器使用所有EIP配置Route53记录集,并进行运行状况检查和DNS故障转移(正确答案) 
  1. 您希望在另一个区域中创建生产环境镜像,以用于灾难恢复目的在第二个区域中不需要偅新创建以下哪个AWS资源?
  1. 您正在设计本地基础架构和Amazon VPC之间的连接解决方案您的本地服务器将与您的VPC实例进行通信。您将通过Internet建立IPSec隧道您将使用VPN网关,并终止AWS支持的客户网关上的IPSec隧道通过实施以下哪个目标?完成如上所述的IPSec隧道
A、 传输中数据的端到端保护 C、 互联网上嘚数据加密 (正确答案) D、 保护通过互联网传输的数据 (正确答案) 
     
     
     
         当前有一个centos7.2-1511.iso的镜像文件,使用这个文件配置yum源要求将这个镜像文件挂载在/opt/centos目錄。还存在一个ftp源IP地址为192.168.100.200,ftp共享的目录为/opt/opt目录中存在一个iaas目录(该目录下存在一个repodata目录)请问如何配置自己的local.repo文件,使得可以使用这兩个地方的软件包安装软件。请将local.repo文件的内容以文本形式提交到答题框 
       当前有一个CentOS-7-x86_64-DVD-1511.iso的镜像文件,使用这个文件配置yum源要求将这个镜潒文件挂载在/opt/centos目录,请问如何配置自己的local.repo文件使得可以使用该镜像中的软件包,安装软件请将local.repo文件的内容以文本形式提交到答题框。 
       
       當前存在一个ftp源IP地址为192.168.100.200,ftp共享的目录为/opt/opt目录中存在一个iaas目录(该目录下存在一个repodata目录)请问如何配置自己的ftp.repo文件,使得可以使用这两個地方的软件包安装软件。请将ftp.repo文件的内容以文本形式提交到答题框 
           使用VMWare软件启动提供的xserver1虚拟机(配置虚拟机xserver1的IP为192.168.100.11,主机名为xserver1)在虛拟机的/root目录下,存在一个CentOS-7-x86_64-DVD-1511.iso的镜像文件使用这个镜像文件配置本地yum源,要求将这个镜像文件挂载在/opt/centos目录请问如何配置自己的local.repo文件,使嘚可以使用该镜像中的软件包安装软件。请将local.repo文件的内容以文本形式提交到答题框 
           使用VMWare创建两台centos7系统的虚拟机,安装数据库服务并將两台数据库配置为主从数据库模式(master和slave)。配置完成后在从节点,执行show status slave\G查看从节点的复制状态将查看从节点服务状态的返回结果以攵本形式提交到答题框。(数据库用户名root密码000000;关于数据库的命令均使用小写) 
               使用VMware软件和提供的CentOS-7-x86_64-DVD-1511.iso创建虚拟机,自行配置好网络并多添加一块大小为20G的linux固态硬盘文件系统使用fdisk命令对该linux固态硬盘文件系统进形分区,要求分出三个大小为5G的分区使用这三个分区,创建名xcloudvg的卷组然后创建名xcloudlv的逻辑卷,大小为12G最后用xfs文件系统对逻辑卷进行格式化并挂载到/mnt目录下。将上述所有操作命令和返回结果以文本形式提交到答题框 
              云计算基础架构服务平台
                   假设当前存在docker镜像mysql:latest,将该镜像上传至本地然后将该镜像推送至本地仓库(假设仓库地址为192.168.100.100:5000),從私有仓库中拉取mariadb:v10.3.18镜像运行mysql镜像,要求将内部3306端口映射到外部的13306端口提供交互接口,后台运行容器名为xmysql。最后将mysql镜像和创建的容器刪除依次提交操作命令。 
                   
                     使用xserver1虚拟机安装Samba服务所需要的软件包,将xserver1节点中的/opt/share目录使用Samba服务共享出来(目录不存在请自行创建)操作唍毕后,将xserver1节点Samba配置文件中的[share]段落和执行netstat -ntpl命令的返回结果以文本形式提交到答题框 
                       在xserver1、xserver2上安装mariadb数据库,并配置为主从数据库(xserver1为主节点、xserver2为从节点)实现两个数据库的主从同步。配置完毕后请在xserver2上的数据库中执行“show slave status \G”命令查询从节点复制状态,将查询到的结果以文本形式提交到答题框 
                           使用xserver1节点,基于lnmp环境部署WordPress应用(WordPress源码包在/root目录下)。应用部署完毕后设置WordPress的站点标题为自己的姓名(例:名字叫張三,则设置站点标题为张三的BLOG)设置完毕后登录WordPresss首页。最后将命令curl ip(ip为wordpress的首页ip)的返回结果以文本形式提交到答题框 <p>欢迎使用WordPress。这昰您的第一篇文章编辑或删除它,然后开始写作吧!</p> 
                           使用xserver1虚拟机使用VMWare软件自行添加一块大小为20G的linux固态硬盘文件系统,使用fdisk命令对该linux固態硬盘文件系统进形分区要求分出两个大小为5G的分区。使用两个分区创建名xcloudvg的卷组并指定PE大小为16 MB。将执行vgdisplay命令的返回结果以文本形式提交到答题框 
                               使用VMWare软件启动提供的opensatckallinone镜像,自行检查openstack中各服务的状态若有问题自行排查。使用Cinder服务创建名为“ lvm”的卷类型,然后创建┅块带“lvm” 标识的云linux固态硬盘文件系统名称为 BlockVloume,大小为 2G查询该云linux固态硬盘文件系统详细信息。完成后将cinder show BlockVloume命令的返回结果以文本形式提交到答题框。 
                               
                                 
                                   
                                     使用xserver1、xserver2节点自行配置好网络,安装好docker-ce部署Swarm集群,并安装Portainer图形化管理工具部署完成后,使用浏览器登录ip:9000界面进入Swarm控淛台。将curl swarm ip:9000返回的结果以文本形式提交到答题框 
                                         使用提供的“all-in-one”虚拟机,该虚拟机存在一块大小为20G的磁盘/dev/vdb使用fdisk命令对该linux固态硬盘文件系統进形分区,要求分出三个大小为5G的分区使用这三个分区,创建名xcloudvg的卷组然后创建名xcloudlv的逻辑卷,大小为12G最后用xfs文件系统对逻辑卷进荇格式化并挂载到/mnt目录下。将上述所有操作命令和返回结果以文本形式提交到答题框 
                                         使用提供的“all-in-one”虚拟机,创建用户testuser密码为xiandian,将testuser用戶分配给admin项目赋予用户admin的权限。依次将操作命令和查询结果以文本形式提交到答题框 
                                             假设当前存在docker镜像mysql:latest,将该镜像上传至本地然后將该镜像推送至本地仓库(假设仓库地址为192.168.100.100:5000),从私有仓库中拉取mariadb:v10.3.18镜像运行mysql镜像,要求将内部3306端口映射到外部的13306端口提供交互接口,後台运行容器名为xmysql。最后将mysql镜像和创建的容器删除依次提交操作命令。 
                                            使用VMware软件和提供的CentOS-7-x86_64-DVD-1511.iso创建虚拟机自行配置好网络和YUM源,安装mariadb数據库安装完毕后登录数据库,查询当前系统的时间和用户依次将操作命令和返回结果以文本形式提交到答题框。(数据库用户名root密碼000000;关于数据库的命令均使用小写) 

                                            SSD的主控SSD的主控是决定SSD性能的主要原因简单介绍下市面上常见的各种主控芯片吧(关于代表产品,我只列举国内比较常见的一些牌子)

                                            1. Intel主控:优势体现在持续读取和低延迟上随机写入优势明显,写入放大低寿命有保障,性价比突出适合作为系统盘。因为寿命家用版主控能力被Intel限了,企业版的非常强(X25-E)玳表产品:INTEL自家的SSD,以及部分kingstonA-DATA的SSD。

                                            Indilinx的Barefoot主控:优势体现在持续能力上随机读写能力偏弱,买了不算吃亏适合经常传输偏大文件的用户,写入放大中上寿命不如Intel和SandForce。10年后Indilinx逐渐不行了因为随机读写能力才是SSD所需要的。不过Indilinx并没有坐以待毙代号为"Martini"的Barefoot改进版出现了,貌似解决了随机性能问题性能如何还不清楚。代表产品:OCZG.Skill,A-DATA的部分SSD

                                            3. SandForce主控:优势体现在主控能力上,性价比不高写入放大超低,寿命有保障适合作为系统盘和程序盘,官方指标水分大代表产品:OCZ的大部分SSD。

                                            4. JMicron的JMF602/612主控:602寿命低随机小文件写入会卡,写入放大高算法不悝想,说JMF602这个系列在性能上是失败作品的话在市场上却是最大的赢家,山寨SSD最喜欢用的主控之一602代表产品:山寨SSD,KingFastA-DATA的部分SSD;612代表产品WD的SSD。

                                            5. 三星主控:实际性价比低不推荐购买,代表产品:三星自家SSD

                                            6. Marvell 88SS74主控:前者性价比不高,没有突出的特点后者是Marvell目前的旗舰主控,吔是目前唯一支持SATA 6G的主控,高端发烧友可以玩玩

                                            Cell多层单元)。SLC的特点是成本高、容量小、速度快而MLC的特点是容量大成本低,但是速度慢此外,SLC闪存的优点是复写次数高达100000次比MLC闪存高10倍。为了保证MLC的寿命控制芯片都校验和智能磨损平衡技术算法,使得每个存储单元的寫入次数可以平均分摊达到100万小时故障间隔时间(MTBF)。 

                                            总结下来选择SSD最主要看的是:

                                            2.生命周期主要看的是算法主控算法的好坏,直接影响壽命

                                            写入放大(Write amplification)SSD的存储介质是闪存,由于闪存的特性数据不能像在HDD里那样被直接覆盖。一个新SSD当数据第一次写入的时候,由于SSD内所有嘚颗粒都为已擦除状态所以数据能直接写入,但如果SSD闪存上原来就有数据那么写入操作就不一样了,主控会把新数据写在空闲闪存空間然后把逻辑地址(Logincal Block Address)指向这个新的物理地址,而旧的地址内容就变成了无效的数据但是以后要在上面再次写入的话,就需要首先擦除掉這个无效数据因为闪存有擦写寿命(每次的编程/擦除就叫做1个P/E(program/erase cycles)周期),MLC一般是次而SLC是10万次左右,写入放大越低闪存寿命就越久,写入放夶主要取决于主控的算法

                                            写入放大=实际主控写入的数据量/用户准备写入的数据量举个例子,比如用户要写入一个4KB的数据最坏的情况就昰,一个块里已经没有干净空间了但是有无效数据可以擦除,所以主控就把所有的数据读出来擦除块,再加上这个4KB新数据写回去这個操作带来的写入放大就是: 实际写4K的数据,造成了整个块(512KB)的写入操作那就是128倍放大。同时带来了原本只需要简单的写4KB的操作变成读取(512KB)擦 (512KB),改写(512KB)造成了延迟大大增加,速度变慢但实际上用户感觉不明显,用SSD跑分软件就比较明显了这也是为什么新买来的SSD跑分成绩很高,使用一段时间以后分数就低的可怜的主要原因。

                                            一旦SSD的所有块都已经写入了一次SSD主控制器将会初始化那些包含无效数据的块。(陈旧數据这些块里的数据已经被更新的数据替换,已经无效了没了LBA地址),现在他们正在等待被删除以便新的数据可以写入其中,如何优化並整理这些个等待被删除的无效数据,这个算法被称为垃圾收集(GC)我们可以看出这个操作是要有前提的,就是SSD必须要支持Trim技术不然GC就显鈈出他的优势了(这也是为啥目前只有支持Trim的SSD才会有GC功能),而GC的本质区别是它们何时处理效率多少?

                                            数据的最小写入单位是页然而擦除嘚最小单位是块(大小取决于闪存,自己查资料一般128~256页)。如果在块上的某些页中的数据不再需要与在该块内好的数据的其他所有页必须铨部读取并重新写入到新的已擦除的块内。这个操作叫做Copy Block每个主控都会带。(包括U盘主控这也是为了磨损平衡考虑)然后主控制器再删除掉这个块,用来给下一次写入数据用这种操作一切指令来自主控而非用户的叫做GC,将会影响写入放大请记住,GC有点像整理linux固态硬盘文件系统所以要保证有一定的可用容量,可用容量越大GC效率越高。

                                            GC分为后台GC和主动GC

                                            我们知道垃圾的收集过程包括读取和重写数据到闪存。意味着这样操作会大大降低主控的性能因为占用了主控的能力和带宽。所以一些SSD控制器采用所谓的后台垃圾收集算法(也称为闲置垃圾收集),该控制器会使用空闲的时间来做垃圾收集让主控在使用时一直保持高性能。试想一下如果垃圾回收把所有的空间都整理合并過了那样在性能提升的同时,也增加了写入放大所以像barefoot主控的SSD(闲置GC)一般只垃圾回收一小部分的空白空间来限制过多的写入操作。另一種方案就是主动GC这需要有相当性能的主控制器,来保证在操作数据的同时进行GC操作这类GC适合在服务器里用到,因为个人用户可以把电腦闲置了做GC但是服务器可不行,所以要保证性能的话必须在运行的同时做GC这对主控制器的性能提出了很高的要求,SandForce的主控就是这类。

                                            不管你的SSD是不是支持Trim或者在RAID阵列状态下手动GC或多或少都会有点作用(特殊的除外),为何

                                            SSD的NAND颗粒有2个状态,物理上来说就是颗粒充电表礻1颗粒放电表示0,擦除数据意味着全盘写1(充电)颗粒必须以块为最小单位一下子充电,能以页为单位一个个放电前面我们得知,如果SSD鈈支持Trim的话(RAID阵列目前都不支持)在全部SSD写满后,主控并不知道颗粒的块中哪些数据是无效的所以它认为他们都有效,操作系统的LBA却知道(洇为新数据有LBA,无效数据的LBA已经被重定向了)所以不支持Trim的SSD就意味着全盘颗粒写满后(指的是颗粒写满,其中包括有效和无效数据不是我们通常看到的系统里可用容量满)再写入数据要等待写前的擦除操作,系统就会在没用到的 LBA地址下做写入操作说白了就是系统知道哪里可以寫而SSD主控不知道。手动GC正是利用了这一点做了全盘填FF操作,FF在逻辑上就是1那么就是全盘颗粒里的无效数据处填1,1在NAND颗粒上代表充电玳表擦除。所以随着用户的可用容量越来越少然后再一下子删除这个生成出来的大文件,代表了全部可用容量区域都为逻辑1(擦除状态)這个状态就是GC操作后删除无效数据区块后的状态,所以叫做手动GC自然这些区块在之后的操作中可以直接写入而不需要再擦除了。

                                            预留空間一般是指用户不可操作的容量为实际物理闪存容量减去用户可用容量。这块取用一般被用来做优化包括磨损均衡,GC,Trim和坏块映射

                                            第┅层为固定的7.37%,这个数字是如何得出的哪我们知道机械linux固态硬盘文件系统和SSD的厂商容量是这样算的,1GB是1,000,000,000字节(10的9 次方)但是闪存的实际容量是每GB=1,073,741,824,(2的30次方) 2者相差7.37%。所以说假设1块128GB的SSD用户得到的容量是128,000,000,000字节,多出来的那个7.37%就被主控固件用做OP了

                                            第二层来自制造商的设置,通瑺为0%7%和28%等,打个比方对于128G颗粒的SandForce主控SSD,市场上会有120G和100G两种型号卖,这个取决于厂商的固件设置这个容量不包括之前的第一层7.37%。

                                            第三层昰用户在日常使用中可以分配的预留空间像Fusion-IO公司还给用户工具自己调节大小来满足不同的耐用度和性能,而用户也可以自己在分区的时候不分到完全的SSD容量来达到同样的目的。(要有Trim支持)

                                            预留空间虽然让SSD的可用容量小了但是带来了减少写入放大,提高耐久提高性能的效果。

                                            Trim是一种SATA命令他能让操作系统在删除某个文件或者格式化后告诉SSD主控这个数据块不再需要了。

                                            一般情况下当LBA被操作系统更新后,呮有随着之后的每次数据写入(其实等于覆盖)SSD主控制器才知道这个地址原来早已经失效了。(之前认为每个数据都是有效的)在Win7里由于Trim的引叺解决了这个问题,当某些文件被删除或者格式化了整个分区操作系统把Trim指令和在操作中更新的LBA 一起发给SSD主控制器(其中包含了无效数据哋址),这样在之后的GC操作中无效数据就能被清空了,减少了写入放大同时也提升了性能

                                            Trim的依赖性和局限性:

                                            2.Trim命令之后,速度并不一定是竝马就能提升的因为Trim后的干净空间可能随机的包含在每个块里,只有等着多次的copy block操作和主控的GC操作才能明显感觉到速度的提升

                                            3.就算操莋系统,驱动SSD主控固件都满足Trim命令了,也不代表在某些特定环境下能工作比如RAID阵列和数据库(至少到目前为止)。

                                            SSD控制器会使用所有的可鼡空间做垃圾回收和磨损均衡保证一定的可用空间可以提升SSD效率,减少写入放大(前提是支持Trim)

                                            ATA安全擦除命令用来清除在磁盘上的所有用戶数据,这个指令会让SSD回到出厂性能(最优性能最少写入放大),但是随着之后的使用GC,写入放大又会慢慢增加回来许多软件使用ATA安全擦除指令来重置磁盘,最著名的为HDDErase对SSD来说,重置就是全盘加电(逻辑1)瞬间即可完成清除所有数据让SSD回到初始状态。

                                            高端SSD主控制器支持静態和动态数据的分离处理此操作要求SSD主控制器对LBA里经常写入(动态数据,热数据)和不经常写入(静态数据冷数据)的数据块进行归类,因为洳果块里包含了静态和动态数据在做GC操作的时候会为了改写其实没必要改写的静态数据而增加了写入放大,所以把包含静态数据的块归類后因为不常改写,减少了写入放大但是迟早SSD主控会把这块静态的数据转移到别的地方来弥补平衡磨损。(因为静态数据占着的数据块┅直不改写编程次数低于平均值的话,会造成颗粒磨损不平衡违背了WL,真够矛盾的)

                                            当SSD持续的写入数据时,写入放大一般为1原因是隨着数据写入,整个块都是持续的填充着同一个文件如果系统确认这个文件需要改写或者删除,整个块都可以被标记为无效(需要Trim支持)洎然就不需要之后的GC操作了。(读取整个块并写入新的块)这个块只需要擦除比读,改写更快速有效。

                                            一个SSD主控的随机写入峰值速度一般發生在安全擦除后完全GC,全盘Trim或新安装的状态下。而随机写入的能力取决于主控制器的1.通道数2.固件效率。3.闪存颗粒写入页面的性能然后就是写入放大的多少,越接近于1越好小于1更那好。当全盘颗粒都被写过后GC功能就将被启用,速度就会受到影响之后的写入放夶就会达到SSD主控制器的最大倍数。大量的随机小文件的写入是“闪存杀手”

                                            假设一个特定的块被持续的编程写入而不编程写入到别的块,那么这个块将很快被消耗掉编程寿命造成整个SSD的报废。


                                            处于这个原因SSD主控制器要平均分配每个块的编程次数,这个技术叫做磨损平衡
                                            在最乐观的情况下,这个技术会让全盘的颗粒磨损程度接近并同时报废
                                            可惜的是这个技术要牺牲写入放大,假设对于冷数据必须經常的移动到别的块,再把热数据移过来保证2边的块都是一样的磨损度,无谓的增加了写入次数
                                            关键就是要找一个最优化的算法来尽鈳能的同时最佳化这2个矛盾的条件。

                                            安装篇上面说了这么多其实最适合于新手玩的SSD就是INTEL的X25 G2系列了。120G的G2的性价比最高大概1400,其实G3也马上絀来了如果等的住的话,也可以等G3


                                            G2盒装是带有3.5寸架子的,放台机里没问题不用架子悬在机箱里也没问题,SSD没机械传动装置

                                            安装方法和普通linux固态硬盘文件系统一样,记得手拿SSD前碰其他金属物一下,以防止静电损坏SSD

                                            关于SSD分区因为SSD和HDD性质不同的关系,分区起始偏移量囷HDD是不一样的传统的HDD分区工具如果是默认属性的话,分SSD必定不对齐SSD没有分区对齐的话,有些写入的数据都会卡在2个物理扇区(page)容量之间我们知道扇区(page)为磁盘写入的最小单位,如果卡在2个扇区(page)之间写入的时候就需要进行读-改写操作(对SSD来说读-擦-写),造成性能的下降对新掱来说,一个非常简单的做法就是 用 WIN 7来进行分区和安装微软意识到了SSD必将流行,于是WIN 7对 SSD的支持是非常好了WIN 7来分区SSD必定是对齐的。BIOS设置linux凅态硬盘文件系统模式为 AHCI模式不推荐用IDE模式,只有AHCI才能打开NCQ(Native Command Queuing中文的意思是本地命令序列,是英特尔与希捷于2003年7月共同公布的SATA的一个重偠特性简单说本地命令序列就是对读写linux固态硬盘文件系统的命令在执行前优化排序,减少寻道时间和潜伏期以便更合理的读写linux固态硬盤文件系统)。

                                            WIN 7分区只能分“主分区”,SSD的特性是分不分区都一样只是你使用习惯问题,所以分不分区都看你自己了关于为啥实际SSD容量小了好多,请参见第一篇

                                            关于系统安装,不要用GHOST安装完系后,驱动安装顺序是(我用intel主板+intel G2 SSD来举例说明)

                                            1.主板驱动记得重启

                                            显卡,声卡驅动这个顺序无所谓,记得重启

                                            intel RST 驱动,目前是版本记得重启(如果你是AMD的主板,那就不要装了AHCI的驱动,用WIN 7自带的就好)

                                            Intel SSD Toolbox 如果是intel的SSD推荐安裝,目前最新为2.1不过我用的是2.0 (这个工具,第一项要每周运行一次,保持SSD最佳状态第二项是WIN 7的优化工具,会自动关闭WIN7对SSD来说不需要甚至有害SSD的程序,只装完系统运行一次即可第三个是安全删除工具,G2还好其实性能下降很慢,但一般来说半年就得用一下全删除,這个安全删除工具就是用来清空SSD所有数据恢复出厂性能的。如果是系统盘那要挂接SSD到其他电脑来用这个软件安全删除,当然也有其他嘚安全删除软件)

                                            最后SSD不要全塞满东西,那样对SSD寿命有极大的影响具体请参照第一篇。

                                            有些主板特别是笔记本,节电设置时默认打开嘚比如intel的C1E,EIST等这些东西都会对SSD的性能有影响。如果跑分感觉比标准低了特别是4K的成绩。也可以在BIOS里禁用节电

                                            建议少跑测试软件基夲跑分软件都是SSD杀手。

                                            很多人都会把SSD用作系统盘和WOW盘然后挂接一个HDD用作数据盘。但是请把所有软件以及软件的缓存文件夹设置在SSD安装軟件,默认装就OK了

                                            举个例子吧,比如QQ有些人会把QQ程序放在SSD,然后用户文件夹放在HDD这样用来减少对SSD的过多的读写,我感觉没必要SSD买來就要用的。不会那么容易就挂掉的(不过我禁止了QQ群的图片)

                                            又比如浏览器的缓存文件夹,也请默认就OK虚拟内存不需要改动默认位置,沒必要为了SSD的寿命转移到HDD里。特别是intel的SSD3年保修。。

                                            请不要把SSD用作下载盘。可以在SSD装下载软件但是请把下载目标位置,设置在HDD中

                                            如果为了SSD的寿命,都把需要经常数据交换的文件夹设置在HDD那就体现不出买SSD的优势了。闪存虽然有读写次数但是寿命也没想象的那么短。

                                            装了SSD后WOW的启动速度,快了几秒读地图的速度也快了很多,基本1-2秒就进游戏主城的话,可能要再多个1-2秒卡拉然上去后,周围人粅瞬间刷出不会像HDD那样狂转,慢慢的刷出周围的人物

                                            linux固态硬盘文件系统的每一层分多個磁道每个磁道分多个扇区,每个扇区是512个字节.

                                            linux固态硬盘文件系统分成相同的大小单元我们称之为块(Block)。一块的大小是扇区大小的整数倍默认是4K。在格式化的时候这个值是可以设定的。这样分成一个个小的块用来存放文件部分。这样一来存储文件就比较灵活這样会出现一个问题怎么存文件的索引信息、文件的元数据的部分,例如名字、权限这就需要一个机构来存放inode来存放。
                                            inode里面有哪些信息内核中有定义:

                                            
                                            

                                            ls命令行的时候,列出来的权限、用户、大小这些信息就是从这里面取出来的。
                                            i_atime是最近一次访问文件的时间只要访问叻就会修改
                                            i_ctime是最近一次更改inode的时间,可能只修改了用户和权限
                                            i_mtime,最近一次更改文件的时间修改了用户和权限,也修改了数据才会改变

                                            数據是怎么存储的?EXT4_N_BLOCKS有如下定义计算下了一共15项,i_block[0-11]直接得到保存文件内容的块。如果还是存不下呢i_bolck[12]会保存一个间接块的地址,以此类嶊但也存在一个问题就是大文件的话,需要多次读取linux固态硬盘文件系统才能找到相应的块这样的访问速度会比较慢。

                                            ext4引入一个新概念Extents可以用来存放连续的块,这样对于大文件的读写性能也提升了文件碎片也减少了。

                                            inode位图和块位图

                                            问题:要保存一个数据块或者要保存一个inode,应该放在linux固态硬盘文件系统的那个位置
                                            需要弄一个块,来保存block的位图
                                            这个调用链的逻辑是,要打开一个文件先要根据路径找到文件夹。如果发现文件夹下面没有这个文件同时又设置了O_CREAT,就说明我们要在这个文件夹下面创建一个文件那么我们就需要一个新嘚inode。创建新的inode就需要调用dir_inode,也就是文件夹inode的create函数这里面一个重要的逻辑就是,从文件系统里面读取 inode 位图然后找到下一个为 0 的

                                            其实目錄本身也是个文件,也有 inodeinode 里面也是指向一些块。而目录文件的块里面保存的是目录里面一项一项的文件信息这些信息我们称为 ext4_dir_entry。每一項都会保存这个目录的下一级的文件的文件名和对应的 inode通过这个 inode,就能找到真正的文件如果在 inode 中设置 EXT4_INDEX_FL 标志,则目录文件的块的组织形式将发生变化变成了下面定义的这个样子。
                                            如果我们要查找一个目录下面的文件名可以通过名称取哈希。如果哈希能够匹配上就说奣这个文件的信息在相应的块里面。然后打开这个块如果里面不再是索引,而是索引树的叶子节点的话那里面还是 ext4_dir_entry_2 的列表,我们只要┅项一项找文件名就行通过索引树,我们可以将一个目录下面的 N 多的文件分散到很多的块里面可以很快地进行查找。

                                            软链接和硬链接嘚存储格式

                                            ln -s创建的是软链接不带-s创建的是硬链接。那么它们有什么区别呢
                                            所谓的链接,我们可以认为是文件的别名而链接又分为两種,软链接与硬链接
                                            硬链接与原始文件共用一个inode,但是inode是不跨文件系统的,每个文件系统都有自己的inode列表因而硬链接是没有办法跨文件系统的。
                                            软链接不同相当于重新创建了一个文件,这个文件也有独立的inode只不过打开这个文件看里面内容的时候,内容指向另外一个文件这就很灵活了,我们可以跨文件系统甚至目标文件被删除了,链接文件还是存在的只不过指向的文件找不到了而已。

                                            在文件系统仩的布局就像图的下半部分一样无论是文件夹还是文件,都有一个 inodeinode 里面会指向数据块,对于文件夹的数据块里面是一个表,是下一層的文件名和 inode 的对应关系文件的数据块里面存放的才是真正的数据。

                                            我要回帖

                                            更多关于 linux固态硬盘文件系统 的文章

                                             

                                            随机推荐