《调教命令行09》磁盘很廉价,放小电影最合适了

tech2022-08-23  106

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。

《调教命令行01》选Linux发行版,就像挑女朋友《调教命令行02》准备一个冰清玉洁的Linux系统《调教命令行03》认识一下,感觉不是说来就来的《调教命令行04》触碰Linux的每个角落(长文)《调教命令行05》对文件的基本操作《调教命令行06》条条大道通罗马,罗马罗马你在哪《调教命令行07》压缩解压(有64KB彩蛋)《调教命令行08》一文搞懂Linux权限体系

接上文。

下面的场景非常的恐怖,对有些程序员来说可以是一场噩梦。

一大早刚刚去上班,煎饼果子刚啃了一半,几个全副武装的警察就闯进了公司。二话不说控制住了工作人员,并守株待兔的等着鱼儿来上班。

原因就是:公司涉嫌存储和扩散非法文件,需要查封所有的服务器进行彻查。

这些文件,有的简单的放在磁盘上,有的放在文件存储服务器上,有的,被切成了多片放在了不同的廉价机器上。

接下来会发生什么,要看技术人员的水平,但估计结果并不会太好。

在上一小节,我们创建了两个普通用户,这两个用户没什么本事,和默认的用户root比起来,它们的权限就小得多。除了自己目录下的文件,其他的,它几乎都没有权限去修改。

这些文件,肯定是要存在磁盘上的。对磁盘的管理,有非常多的命令,这一小节的内容,对于系统管理员来说,经常使用;但对于开发来说,就要求比较低一些。因为开发只需要知道小电影存在什么地方了,不需要知道小电影是怎么存的。

那定罪的时候,运维和程序员,到底是谁的锅更大一些?其实是个悖论。运维人员在发呆的时候,脑子里回忆起了下面的知识。

1.添加新硬盘

你要是一个系统管理员,甚至是一个上了云的系统管理员,现在买了一块aws的扩展盘,它是不能被使用的。需要经过格式化挂载以后,才能投入生产。

还记得在安装系统的时候么?其中有一步,需要对虚拟机的磁盘,进行划分,我们直接采用默认的方式。不过现在已经改不了了,它已经是过去式了。

为了模拟对磁盘的管理,我们需要首先给虚拟机新加一块虚拟磁盘。首先,使用shutdown -h now命令关闭机器,进行下面的操作。

1、 进入settings选项,然后切换到storage,添加磁盘

2、 点击创建一块磁盘

3、 选择VDI

4、 动态扩容,用多少扩多少

5、 我们创建一块2GB大的,叫做disk2的磁盘

启动机器。远程连接192的ip,别忘了执行dhclient命令。

首先使用fdisk看一下目前的磁盘状况。

root@localhost ~]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000c2410 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 16777215 7339008 8e Linux LVM Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-root: 6652 MB, 6652166144 bytes, 12992512 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes

从命令的结果,我们看到了有两块磁盘。/dev/sda和/dev/sdb,其中sda已经被分配,已经被我们的文件系统所占用。现在,回忆一下/dev目录的用途,在这个目录下,存放了一些设备文件,假如我们再添加一块磁盘,它的句柄就应该是sdc (sd*)。

在这整块磁盘能够被使用之前,我们需要对它进行三次操作。

磁盘分区

磁盘格式化

磁盘挂载

2.分区

对磁盘分区依然是fdisk命令,以下命令,将进入交互模式。在交互模式中,输入n新建分区。由于我们的磁盘只有2GB,所以只创建一个分区就好。根据向导,一路确定向下,最后,输入w确定写入分区表,同时退出命令交互。

再次执行fdisk -l,可以看到已经多了一块2gb大小的分区。

[root@localhost ~]# fdisk /dev/sdb ... [root@localhost ~]# fdisk -l ... Device Boot Start End Blocks Id System /dev/sdb1 2048 4194303 2096128 83 Linux ...

3.格式化

在命令行,输入mkfs,然后按<TAB>进行补全,将会显示一批命令。

[root@localhost ~]# mkfs. mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs

这批命令,都可以对磁盘进行格式化。目前,最常用的磁盘格式是ext4。但我们并没有找到windows操作系统的FAT以及NTFS等格式,但它们在概念上是等同的。

下面介绍一下Linux下常用的磁盘格式。

btrfs GPL授权。是为了替换ext系统而发起的。不熟悉,不过多评价。

cramfs 门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,很少用

ext2 ext的早先版本。

ext3 ext2的改进。

ext4 使用最多。如果对其他的不熟悉,老老实实用ext4吧。

minix 比较古老,也不常用。

xfs XFS 文件系统是扩展文件系统的一个扩展,是 64 位高性能日志文件系统。centos7.0开始的默认文件系统。

我们就录乡随俗,将磁盘给格式化成xfs。

[root@localhost ~]# mkfs.xfs /dev/sdb1

注意:如果想要把磁盘格式化成fat32的格式,需要安装一个软件。

yum install dosfstools -y

4.挂载

最后一步,是使用mount命令挂载磁盘。我们把它挂载到/data目录。

df命令能够看到系统的磁盘使用状况,参数h是human的意思,以比较容易读的方式展现信息;lsblk则以另一个角度查看系统磁盘挂载情况。

[root@localhost ~]# mkdir /data [root@localhost ~]# mount /dev/sdb1 /data [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 908M 0 908M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.6M 911M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/mapper/centos-root 6.2G 1.4G 4.9G 22% / /dev/sda1 1014M 149M 866M 15% /boot tmpfs 184M 0 184M 0% /run/user/0 /dev/sdb1 2.0G 33M 2.0G 2% /data root@localhost ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs ac3a3ce8-6ab1-4c0b-91c8-b4e617f0dfb4 /boot └─sda2 LVM2_member 3GzmOd-TUc1-p2ZN-wT5q-ttky-to9l-PF495o ├─centos-root xfs 9f86f663-060a-4450-90f9-3005ad9c5d92 / └─centos-swap swap cf8709b0-b0ab-4d44-a23e-ad76f85efad6 [SWAP] sdb └─sdb1 xfs 0a7c861c-1a31-45b3-bf37-c72229f35704 /data

为了能够在开机的时候加载磁盘,我们需要修改/etc/fstab文件。这种文件修改的时候一定要小心,否则会造成系统无法启动。

[root@localhost ~]# echo "/dev/sdb1 xfs defaults 0 0" >> /etc/fstab [root@localhost ~]# cat /etc/fstab /dev/mapper/centos-root / xfs defaults 0 0 UUID=ac3a3ce8-6ab1-4c0b-91c8-b4e617f0dfb4 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 xfs defaults 0 0

5.交换分区

由于内存的容量有限,现在的操作系统,都会使用磁盘模拟一个虚拟内存区域,用于缓冲一些数据。由于磁盘的速度和内存不可同日而语,通常会造成应用程序的卡顿。卡归卡,应用进程却可以因此苟延残喘,续命。

swap分区,即交换区,系统在物理内存不够时,与swap进行交换。即当系统的物理内存不够用时,把硬盘中一部分空间释放出来,以供当前运行的程序使用。当那些程序要运行时,再从swap分区中恢复保存的数据到内存中。

现代互联网公司,一般对接口的响应时间有比较高的要求,swap分区一般是禁用的。关于swap,有下面几个相关的命令。

# 制作交换分区 [root@localhost ~]# mkswap /dev/sdb1 # 禁用所有交换分区 [root@localhost ~]# swapoff -a # 启用交换分区 [root@localhost ~]# swapon

5.使用dd命令进行备份

下面的命令,将直接备份磁盘A到磁盘B。

# dd if=/dev/sda of=/dev/sdb

在上面的命令中,if代表输入的文件,of代表输出的文件。根据Linux下一切皆文件的原理,这里的文件指的就是设备。

dd命令还可以将整个磁盘打包成一个镜像文件。比如下面的命令。

# dd if=/dev/hda of=~/hdadisk.img

当然,恢复磁盘的时候,也是相当简单的,我们只需要逆向操作就可以了。

# dd if=hdadisk.img of=/dev/hda

End

对于一个以提供非法文件服务的公司来说,最大的投入,就是存储。不过,这些存储都是廉价的,可以使用最初级的硬盘完成任务。

即使是这么便宜的硬盘,也要投入很多才行。这也很可惜,现在公司花了不少钱建设这个体系,还没开始盈利,就被全部端掉了。

知道这个结果的所有人,泪水掉了下来。这是一个三输的局面:

公司员工要进去蹲几年才能出来。

警察没收了一家亏本的公司,并没什么东西能够充公。

那就是你啊。

作者简介:小姐姐味道  (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

推荐阅读:

一图解千愁,jvm内存从来没有这么简单过!失联的架构师,只留下一段脚本架构师写的BUG,非比寻常nginx工程师,需要上承天命,下召九幽实力解剖一枚挖矿脚本,风骚操作亮瞎双眼又一P1故障,锅比脸圆传统企业的人才们,先别忙着跳“互联网”!面试官很牛,逼我尿遁又一批长事务,P0故障谁来背锅?一天有24个小时?别开玩笑了!《程序人生》杀机!可怕的“浏览器指纹”,让你在互联网上,无处可藏2w字长文,让你瞬间拥有「调用链」开发经验996的乐趣,你是无法想象的作为高级Java,你应该了解的Linux知识(非广告)必看!java后端,亮剑诛仙(最全知识点)学完这100多技术,能当架构师么?(非广告)Linux上,最常用的一批命令解析(10年精选)数百篇「原创」文章,助你完成技术「体系化」


最新回复(0)