引言 在大多数情况下,我们习惯于使用 Delete 键、垃圾箱或 rm 命令从我们的计算机中删除文件,但这不是永久安全地从硬盘中(或任何存储介质)删除文件的方法。 该文件只是对用户隐藏,它驻留在硬盘上的某个地方。它有可能被数据窃贼、执法取证或其它方式来恢复。 假设文件包含密级或机密内容,例如安全系统的用户名和密码,具有必要知识和技能的攻击者可以轻松地恢复删除文件的副本并访问这些用户凭证(你可以猜测到这种情况的后果)。 在本文中,我们将解释一些命令行工具,用于永久并安全地删除 Linux 中的文件。 1.
在大多数情况下,我们习惯于使用 Delete 键、垃圾箱或 rm 命令从我们的计算机中删除文件,但这不是永久安全地从硬盘中(或任何存储介质)删除文件的方法。
最近因为毕设重新回归Ubuntu,手头有一台装了Win10的ThinkPad X240s,最终成功完成了Windows 10 教育版和Ubuntu Kylin 15.10 的双系统配置,下文(多图慎入)是我完成整个过程的手记。 安装方式 Ubuntu是很多Linux初学者最理想的选择,如果你恰好对Windows系列审美疲劳或者累觉不爱,那就要听好,有三种方法助你走进Ubuntu新世界。 虚拟机安装 原料:Ubuntu Kylin的ISO、VMware或VirtualBox 优点:一条龙服务,安全简单 缺
在Oracle数据库中,什么是不可用索引(Unusable Indexes),哪些操作会导致索引变为不可用(unusable)即失效状态?
上一篇文章「保证严格的消息顺序消费究竟有多难?」简单描述了对消息顺序消费的一些理解,上一篇文章中的第二个故障问题,感觉没描述清楚,现在我以 Kafka 为例子,继续分析一波。
经过上次 Kafka 日志集群某节点重启失败导致某个主题分区不可用的事故之后,这篇文章专门对分区不可用进行故障重现,并给出我的一些骚操作来尽量减少数据的丢失。
内存管理是Linux系统重要的组成部分。为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。
三个月前的一次生产环境数据库操作事故,至今仍然历历在目、难以忘怀。这次血与泪的教训需要被记录下来,鉴前毖后。这就是这篇迟来的教训总结的成文背景。
Zookeeper作为注册中心不是跑的好好的吗?为什么要替换,是不是闲的?在过去的一段时间替换它的优先级的确不高,然而腾出手来是要替换掉它的,换句话说选择注册中心时有更好的选择。
从安全的角度来看,对敏感数据进行加密以保护其免受窥探和黑客的攻击是很重要的。Linux 统一密钥设置Linux Unified Key Setup(LUKS)是一个很好的工具,也是 Linux 磁盘加密的通用标准。因为它将所有相关的设置信息存储在分区头部中,所以它使数据迁移变得简单。
使用在线重定义的方式进行分区表的转换,优势在于可以在线进行,流程简单,可以快速进行转换。
在日常开发过程中使用kafka来实限流削峰作用但是往往kafka会存放多份副本来防止数据丢失,那你知道他的机制是什么样的吗?本篇文章就带给大家讲解下。
ORACLE数据库既能跑OLTP业务,也能跑OLAP业务,能力是商业数据库中数一数二的。支持IBM小机和x86 PC服务器,支持多种OS。同时有多种数据库架构方案供选择,成本收益风险也各不相同。
CKafka 专业版支持跨可用区部署,在拥有3个或3个以上可用区的地域购买 CKafka 实例时,可以任选其中两个可用区购买跨可用区实例。该实例分区副本会强制分布在两个可用区节点上,这种部署方式能够让您的实例在单个可用区不可用情况下仍能正常提供服务。
在《如何为服务器硬盘配置RAID或JBOD模式》一文中提到,单张RAID卡无法同时启用RAID模式和JBOD模式,即无法混合管理,如果RAID卡为所有硬盘配置了JBOD模式,那么用于安装操作系统的两块SSD无法通过RAID卡做RAID 1。除非有两张RAID卡,把SSD和数据盘分开管理,一张启用RAID模式,为两块SSD做RAID 1,另外一张启用JBOD模式,管理所有数据盘。或者在软件层面实现操作系统的软RAID。本文将主要讲述如何在操作系统层面配置软RAID。
在理论计算机科学中,CAP原理指出对于一个分布式系统来说,当设计读写操作时,只能同时满足一下三点中两个:
上周在做日志机扩容的时候,发现运维同学将一块硬盘的挂载点没有同以前的日志机保持一致,考虑到这会给日后的维护带来麻烦,于是尝试着手修改,在修改的同时,review 了下之前日志机的挂载配置,发现居然存在随时掉坑的可能。。。至于什么坑,我会在文末说明。 so,感觉这事儿虽然简单,也许一条命令就搞定的事情,但是,很多童鞋可能不明就里,纯复制粘贴网上的命令,这很容易给人挖坑埋雷,今天就来聊聊 linux 下磁盘分区、挂载的问题,篇幅所限,不会聊的太底层,纯当科普吧~ 1、Linux 分区简介 1.1
之前我们分析过喜马拉雅的爬取信息,使用分布式爬取,而且需要修改scrapy-redis的过滤算法为布隆过滤来减少redis内存占用,最后考虑这样还是不一定够,那么redis集群就是更好的一种选择方式了。
以上是目录结构 以下是文件存储结构 在linux正统的文件系统(eg:ext2、ext3)中,一个文件由以下三个部分组成: 1. 目录项:包括文件名和inode节点号。 2. Inode::又称文件索引节点,记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码。 3. data block:实际记录文件的内容,若文件太大时,会占用多个block。
最近决定在win10的基础上装一个ubuntu系统用来管理服务器。但是有一个问题,前段时间U盘不慎丢失,没有启动盘,又想装ubuntu双系统,该怎么办呢?基于以前装黑苹果的经历,决定用EasyBCD做引导的方式,试了试还可以,过程如下。
1。 如果想在一台电脑上同时体验Windows和Linux双系统,进行安装的时候,最好先安装Windows,留一块分区,然后再安装Linux。因为Linux可以识别Windows,安装过程比较容易。而且安装好以后Linux会自动将Windows的硬盘挂在到/media目录下,我们在Linux中也可以访问Windows的文件。而Windows是识别不了Linux的,如果先安装Linux再安装Windows会有很多问题。 2。安装好以后重启可能会存在Linux上不了网的情况。这是因为Windows系统会默认把网卡的wake on-lan after shutdown设为disable,也就是把网卡封锁,直到下次进入Windows。参考网络资料说在设备管理器中的网络适配器->属性->高级中,如果有wake on-lan after shutdown选项,将其设置为enable就行。可是我的并没有这个选项。最后,我在BIOS中查到有wake on-lan,将其设为LAN only。 3。Linux可能会存在挂载不了Windows硬盘的情况。解决方法:在电源选项->选择电源按钮的功能->更改当前不可用的设置中关闭快速启动。这样Linux就可以自动挂载Windows硬盘了。但是Windows启动可能会稍微变慢。 4。安装好以后系统引导启动默认是Linux,怎么设置优先启动Windows呢?修改“/etc/default/grub”文件进行配置。使用sudo vim /etc/default/grub命令打开该配置文件,其中的“GRUB_DEFAULT=0”就是设置的默认启动项了。GRUB启动项是按照启动菜单依次使用数字进行索引了,起始数字为0。Windows是第五个,所以修改“GRUB_DEFAULT=4”。修改完成,保存退出之后,还需要执行一下“sudo update-grub”来重新生成GRUB启动配置项。
上篇文章我们了解到,如果一个topic分区越多,理论上整个集群所能达到的吞吐量就越大。那么,分区数越多就越好吗?显然不是。今天我们来聊下kafka在分区数过多的情况下,会带来哪些弊端。
谈到服务治理,就不得不小了解一下CAP理论 ,因为一般都是分布式框架,才会有服务治理的概念,而CAP理论是分布式架构中重要理论
大家好,我是老三,今天是没有刷题的一天,心情愉悦,给大家分享两个简单的知识点:分布式理论中的CAP和BASE。
导读:笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的RabbitMQ,而是采用了设计之初就为日志处理而生的Kafka。
通过之前的文章《Kafka分区分配策略》和《Kafka高性能揭秘》,我们了解到:Kafka高吞吐量的原因之一就是通过partition将topic中的消息保存到Kafka集群中不同的broker中。无论是Kafka的producer,还是consumer都可以并发操作topic中的partition,因此partition是Kafka并行度调优的最小单元。
【编者按】CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设计,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,目前已经完成了A轮融资,发展风头正劲。InfoQ希望《CoreOS实战》系列文章能够帮助读者了解CoreOS以及相关的使用方法。如果说Docker是下一代的虚拟机,那CoreOS就应该是下一代的服务器Linux,InfoQ愿和您一起探索这个新生事物。
Discord 在创建之初采用的是一个单副本集的 MongoDB,没有使用 MongoDB 的分片,他们给出的理由是当时 MongoDB 分片很难用,而且不够稳定(这里就不去深究了)。消息数到达一亿条时,RAM 里已经存不下这么数据和索引,MongoDB 的延时开始变得不可控。
CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析。因此自己参考部分资料梳理了一篇与大家互相分享一下。
可靠的数据传输是系统的属性之一,不能在事后考虑,就像性能一样,它必须从最初的白板图设计成一个系统,你不能事后把系统抛在一边。更重要的是,可靠性是系统的属性,而不是单个组件的属性,因此即使在讨论apache kafka的可靠性保证时,也需要考虑其各种场景。当谈到可靠性的时候,与kafka集成的系统和kafka本身一样重要。因为可靠性是一个系统问题,它不仅仅是一个人的责任。每个卡夫卡的管理员、linux系统管理员、网络和存储管理员以及应用程序开发人员必须共同来构建一个可靠的系统。 Apache kafka的数据传输可靠性非常灵活。我们知道kafka有很多用例,从跟踪网站点击到信用卡支付。一些用例要求最高的可靠性,而另外一些用例优先考虑四度和简单性而不是可靠性。kafka被设计成足够可配置,它的客户端API足够灵活,允许各种可靠性的权衡。 由于它的灵活性,在使用kafka时也容易意外地出现错误。相信你的系统是可靠的,但是实际上它不可靠。在本章中,我们将讨论不同类型的可靠性以及它们在apache kafka上下文中的含义开始。然后我们将讨论kafka的复制机制,以及它如何有助于系统的可靠性。然后我们将讨论kafka的broker和topic,以及如何针对不同的用例配置它们。然后我们将讨论客户,生产者、消费者以及如何在不同的可靠性场景中使用它们。最后,我们将讨论验证系统可靠性的主体,因为仅仅相信一个系统的可靠是不够的,必须彻底的测试这个假设。
首先要明白,在kafka中,单个partition是kafka并行操作的最小单元,在producter和broker端,向每一个分区写入数据是完全可以并行的,此时,可以通过加大硬件资源的利用率来提升系统的吞吐量,例如对数据进行压缩,在consumer端,kafka只允许单个partition的数据被一个consumer线程消费,因此,在consumer端,每个consumer group内部的consumer并行度完全依赖与被消费的分区数量。综上,通常情况下,在一个kafka集群中,partition的数量越多,意味这可以到达的吞吐量越大。
问题要从一次 Kafka 的宕机开始说起。笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的 RabbitMQ,而是采用了设计之初就为日志处理而生的 Kafka,所以我一直很好奇 Kafka 的高可用实现和保障。
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。
分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。这个也就是著名的CAP定理。 C一致性:对于指定的客户端来说,读操作保证能够返回最新的写操作结果。 A可用性:非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。 P分区容错性:当出现网络分区后,系统能够继续“履行职责”。
本章,我们讨论有关RabbitMQ的容错性,消息一致性及高可用性。RabbitMQ可以作为集群节点来运行,因此RabbitMQ通常被归为分布式消息系统,对于分布式消息系统,我们的关注点通常是一致性与可用性。
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
在我和实际使用中,字符集用utf8效果很好,没有出现乱码的问题,在终端挂载的代码如下: mount -t vfat /dev/hda2 /mnt/d -o codepage=936,iocharset=utf8 我的fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hdc8 / ext3 defaults,errors=remount-ro 0 1 /dev/hdc9 none swap sw 0 0 /dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/hdc1 /mnt/winc vfat defaults,codepage=936,iocharset=utf8 0 0 /dev/hdc5 /mnt/wind ntfs defaults,iocharset=utf8,umask=0222 0 0 /dev/hdc6 /mnt/wine ntfs defaults,iocharset=utf8,umask=0222 0 0 /dev/hdc7 /mnt/winf vfat defaults,codepage=936,iocharset=utf8 0 0 (以下转自网络) 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内 容将不可用。 对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作 系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是 fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和 windowsXP是fat16、fat32、NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。 挂载时使用mount命令: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有 -t<文件系统类型> 指定设备的文件系统类型,常见的有: minix linux最早使用的文件系统 ext2 linux目前常用的文件系统 msdos MS-DOS的fat,就是fat16 vfat windows98常用的fat32 nfs 网络文件系统 iso9660 CD-ROM光盘标准文件系统 ntfs windows NT 2000的文件系统 hpfs OS/2文件系统 auto 自动检测文件系统 -o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有 codepage=XXX 代码页 iocharset=XXX 字符集 ro 以只读方式挂载 rw 以读写方式挂载 nouser 使一般用户无法挂载 user 可以让一般用户挂载设备 提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存 在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?) 例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。 # mk /mnt/winc # mk /mnt/floppy # mk /mnt/cdrom # mount -t vfat /dev/hda1 /mnt/winc # mount -t msdos /dev/fd0 /mnt/floppy # mount -t iso9660 /dev/cdrom /mnt/cdrom 现在就可以进入/mnt/winc等目录读写这些文件系统了。 要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时 更换的话,我想就不会犯这样的错误了 :-> ) 如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要 用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文中文代 码是936;io
最近1-2周, 业务侧基于性能和一致性的需求,测试和验证基于sofa-jraft的框架。由于上线后事关生产环境的稳定性,于是加入调研jraft/raft相关领域调研,确保生产环境即使在极端情况下,也在我们考量的范围之内。
zookeeper 是一个非常优秀的项目,非常成熟,被大量的团队使用,但对于服务发现来讲,zookeeper 真的是一个错误的方案。
本文最先发布在:https://www.itcoder.tech/posts/how-to-add-swap-space-on-ubuntu-20-04/
注: 此系列内容来自网络,未能查到原作者。感觉不错,在此分享。不排除有错误,可留言指正。
在 2 月10 号下午大概 1 点半左右,收到用户方反馈,发现日志 kafka 集群 A 主题 的 34 分区选举不了 leader,
服务器搬迁后不是简单能连接上服务器就可以了,还有许多的事情需要考虑,否则服务器不可用还是白搭。 我大体碰到了如下的一些问题,也能够反应出来对于系统的各种潜在隐患。 1 批量检测服务器的可用状态 如果有大批量的服务器搬迁,有些能够连通,有些不可以,使用telnet本身就有硬伤,我们直接设置个超时时间,对于服务是否可用一目了然。这个时候还是推荐使用nc命令。比如测试服务器10.129.128.37的22端口是否可通,超时时间为2秒,则可以使用如下的命令。 nc -z -v -n -w 2 10
互联网发展到现在,由于数据量大、操作并发高等问题,大部分网站项目都采用分布式的架构。
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP C(一致性):在分布式系统中,是否立即达到数据同步的效果(平时多说的强一致性)。在分布式系统一定最终会一致的。如果请求完,整个分布式系统同步后才返回结果,叫做强一致性。如果先返回结果,在一定时间后才实现一致性就叫做弱一致性。 A(可用性):在分布式系统中,其中一些节点出现问题,整个整体是否还可用。还可以从性能角度上考虑,整个分布式系统反应较快也属于达到了可用性。 P(分区容错性):在分布式系统中,是否可以在有限的时间内达到数据一致的效果,如果因为网络等问题最终没有达到一致性,这时称为出现分区错误。
随着业务的拓展,功能越来越多。把所有的功能都放在同一个服务下,代码混合交错,造成维护困难,也容易造成某一小bug导致整个服务不可用。因此我们会按业务功能会拆分成多个不同的服务(微服务的形成),多个服务组成的系统,有个响亮的名字:分布式系统;而系统中的服务状态我们该怎么去管理,有什么相关的理论呢?
注册中心在分布式应用中是经常用到的,也是必不可少的,那注册中心,又分为以下几种:eureka(springcloud推荐的),zookeeper(与dubbo无缝结合),consul(HashiCorp开源),nacos(阿里开源的);
当只有一台计算机的时候,也就是单机系统,我们不需要考虑通信、容错、一致性等等问题,只需要将应用部署在这台计算机上,它的正确运行是显而易见的——就像我们平时所做的那样,自己编写一个C++程序并运行。
2. 所有的同步副本写入了消息时,才会被认为已经提交 3. 只要有一个副本是活跃的消息就不会丢失 4. 消费者只能提取已经提交的消息
领取专属 10元无门槛券
手把手带您无忧上云