坚实的幻想

ON A CLEAR DISK YOU CAN SEEK FOREVER

负载均衡集群 LVS 详解

Loadbalancer & LVS

当服务器遇到性能瓶颈需要进行扩展时,一般来说有两种解决思路:Scale-up 和 Scale out,也称作垂直扩展和水平扩展。 垂直扩展 通常指增加 CPU 和内存,购买昂贵的高性能服务器 优点: 耗电量相比使用多台服务器要少 实施简单 缺点 价格太昂贵 由于资源的争用,服务器性能的增长会越来越小 有很大的硬件故障导致服务不可用的风险 受限制于供应...

高可用集群基本概念

High availability

什么是高可用 可用性如何定义 可用性(availability)是关于系统可供使用时间的表述,以不可用的时间为衡量指标。不可用时间越短,可用性越高。通常用 n 个 9 来描述。比如 4 个 9 的可用性(99.99%),是指一年中不可用时间在 52 分钟内,平均每周不可用时间在 1 分钟。 可靠性(reliability)是关于系统无故障时间间隔的描述,以发生故障的次数为衡量指...

用 awk 实现一个关系型数据库

AWK & relational DB

awk 的祖师爷 Brian W. Kernighan,写过一本 《The AWK Programming Language》,这本书一如 Brian W. Kernighan 的其他书,简明扼要却不乏深入。更厉害的是这本书在淘宝上的售价居然高达 1000 多。 书中用 awk + 纯文本数据模拟了一个微型的关系型数据库外加一个数据库查询语言编译器,看完真让我感觉脑洞大开。 本文将整个过...

Linux 防火墙和 iptables

Netfilter & iptables

Netfilter 与 iptables 的关系 Linux 系统在内核中提供了对报文数据包过滤和修改的官方项目名为 Netfilter,它指的是 Linux 内核中的一个框架,它可以用于在不同阶段将某些钩子函数(hook)作用域网络协议栈。Netfilter 本身并不对数据包进行过滤,它只是允许可以过滤数据包或修改数据包的函数挂接到内核网络协议栈中的适当位置。这些函数是可以自定义的。 ...

文件共享服务 FTP,NFS 和 Samba

Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见的硬盘,U 盘等,这种设备很难做到共享。 NAS NAS 指 Network Area Storage,它一般是将本地的存储空间共享给其他主机使用,一般通过 C/S 架构实现通信。它实现...

计算机原理 —— 计算机是如何启动的

How computer booted

这是来自于 Gustavo Duarte 博客的一系列的计算机内部原理的科普文章,本人出于兴趣翻译过来。原文:How Computers Boot Up 上一篇文章讲了 Intel 系统的主板与内存映射。计算机启动是一个复杂的,充满黑科技的(原文是 hacky),多阶段的过程。这里是整个过程的概要图: 当你按下电源键的那一刻,计算机的的启动就开始了。当主板启动后,它开始初始化...

计算机原理 —— 主板与内存映射

Motherboard and memory map

这是来自于 Gustavo Duarte 博客的一系列的计算机内部原理的科普文章,本人出于兴趣翻译过来。原文:Motherboard Chipsets and the Memory Map 我打算写几篇关于计算机内部原理的文章,来帮助解释现代操作系统内核是如何工作的。我希望这些文章能对那些对这部分内容感兴趣但又没有相关经验的爱好者和程序员们有所帮助。文章主要关注 Linux,Win...

DNS 与 BIND

DNS 简述 DNS 的全称是 Domain Name System,DNS 负责主机名字之间和互联网络地址之间的映射,在我们上网或者发送电子邮件的时候,一般都会使用主机名而不是 IP 地址,因为前者更容易记忆,但是对于计算机,使用数字(IP 地址)则更为方便。DNS 能够帮助我们将主机名转换成计算机更容易识别的 IP 地址。从而完成主机之前的通信。 DNS 发展史 20 世纪 60年代...

加密、解密以及 openssl

OpenSSL Intro

安全的目标 信息加密是为信息安全服务的,信息作为一种有价值的资产,需要保护,免受攻击。 为了保证信息的安全,通常需要实现三个安全目标:机密性、完整性和可用性。 机密性 机密性是指保护信息的机密性,阻止非法访问。 通常有两种攻击威胁到信息的机密性:嗅探和流量分析。因此信息需要以某种方式加密,这样即使信息泄漏,非授权的用户也无法获得信息的内容。 完整性 完整性的是指保护信息被他人非法...

Linux Kickstart 自动安装

Unattended installation with kickstart

从系统安装说起 在 RHEL,CentOS,Fedora 等系统中,安装系统使用的程序名叫 anaconda,它属于 FedoraProject,由 Python 开发,能够提供图形或者文本界面用于系统安装。 在安装系统之前,计算机的硬件上可能是没有操作系统的,因此为了能够运行安装程序,需要一个临时的操作系统,引导开机,启动安装程序,在使用光盘安装操作 linux 系统(这里特指 RHEL...