《调教命令行09》磁盘很廉价,放小电影最合适了
nanshan 2024-11-26 06:59 15 浏览 0 评论
原创:小姐姐味道(微信公众号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年精选)
数百篇「原创」文章,助你完成技术「体系化」
- 上一篇:Raid卡和磁盘设置
- 下一篇:内外置存储卡要分清
相关推荐
- 0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)
-
文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...
- ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes
-
为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...
- 生产环境starrocks 3.1存算一体集群部署
-
集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...
- 在CentOS上添加swap虚拟内存并设置优先级
-
现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...
- 国产深度(deepin)操作系统优化指南
-
1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...
- postgresql-15.4 多节点主从(读写分离)
-
1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...
- Docker 容器 Java 服务内存与 GC 优化实施方案
-
一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...
- 虚拟内存设置、解决linux内存不够问题
-
虚拟内存设置(解决linux内存不够情况)背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...
- Elasticsearch性能调优(5):服务器配置选择
-
在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...
- Es如何落地
-
一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...
- 针对Linux内存管理知识学习总结
-
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...
- MySQL进阶之性能优化
-
概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...
- Linux Cgroups(Control Groups)原理
-
LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...
- linux 常用性能优化参数及理解
-
1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...
- 如何在 Linux 中使用 Sysctl 命令?
-
sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)