首頁>技術>

認識伺服器及其核心元件認識常用伺服器

DELL,HP和IBM是網際網路公司中使用最常用的伺服器品牌。其中網際網路公司中使用最廣泛的品牌DELL,常見的伺服器型號按照不同的用途分為2u的R730/R730/R830和4U的R930,其中1U表示高度為4.45cm,其結構型別是機架式。

Dell R830

伺服器硬體選型

伺服器中重要的元件包含電源(如果是單臺伺服器通常都是雙路電源,叢集場景不需要使用雙路電源),主機板(作用類似於人體的骨架),CPU,記憶體和磁碟,網絡卡(整合在主機板上)等等。

而系統運維人員需要重點關注伺服器的CPU、記憶體、磁碟三大核心元件

CPU :伺服器常用的CPU是基於X86指令集的英特爾至強Xeon( E3, E5, E7系類),根據用途不同伺服器的CPU通常是2-4顆,單顆CPU是4-8核,如果是做虛擬化宿主機則需要4-8顆CPU,虛擬6-10個虛擬機器。

記憶體:伺服器的記憶體區間通常是16-256G(32G-64G更多),如果是做虛擬化的宿主機,記憶體總量一般是48-128G,用來虛擬6-10個虛擬機器。32位系統最多定址2的32次方也就是4G個記憶體空間,64位系統最高定址記憶體可以達到2的64次方也就是4G*4G記憶體空間,但是由於其他元件限制,實際使用不了那麼多,64位Linux支援記憶體為16EB。

磁碟:伺服器的磁碟介面型別通常分為SATA(轉速7200轉/分),SAS(轉速10000-15000轉/分),SSD三種。通常不對外訪問的業務(例如線下資料備份)採用SATA,STAT的特點是容量大,價格便宜但是速度比較慢。而常規正式的工作場景選用SAS硬碟,機械磁碟轉速高的效能好。高併發,小資料量(TB)時選用SSD。考慮到經濟效益,網際網路公司通常根據不同的應用場景都是SATA,SAS和SSD混合使用。

每個計算機元件的IO效能也各不相同,核心元件(CPU,記憶體,磁碟)都遵循容量越大,IO效能越差。

在後期系統優化和架構設計時,通常需要注意各個硬體元件的瓶頸,尤其是磁碟。

目前網際網路公司逐步在使用PC伺服器和Linux替換昂貴的Unix,阿里巴巴的去IOE直接導致了阿里雲的誕生,目前小型網際網路公司也沒有單獨購買伺服器,更多的是購買阿里雲、騰訊雲的雲伺服器,減少運維成本。

初識UnixUnix發展歷史1969年,貝爾實驗室的Ken Thompson使用匯編語言和B語言開發和改進了UNICS1973年,貝爾實驗室的Dennis Ritchie使用C語言重新編寫實現,並正式命名Unix1977年,伯克利大學開發基於Unix的BSD系統,自此以後各大公司針對自身硬體架構開發了互不相容的各種版本的Uinx,例如SUN公司的Solaris,HP公司的HP UNIX以及IBM公司的AIX1979年貝爾實驗室發表了System V架構 版權宣告,HP UNIX,IBM AIX宣佈“不對學生提供原始碼” 並且收回版權1984年 Andrew S. Tanenbaum荷蘭阿姆斯特丹自由大學電腦科學的教授開發了可執行在x86 PC平臺的Minix作業系統用於教學。

Unix的發展路線以及各個分支

Unix系統的特點

技術成熟、可靠性高:通常超大型銀行、金融公司等可靠性要求性極高的公司會採用Unix作為伺服器作業系統,但是Unix通常是隨著硬體捆綁銷售的,例如IBM的小型機。支援主流CPU的架構:Intel/AMD,PowerPC,UltraSPARC支援主流的資料庫:Oracle,DB2,Informix強大的開發功能:Unix促使C語言的誕生,而TCP/IP,XML,WWW都是誕生在Unix之上

GUN與開源軟體GUN概述

由於Unix面臨商業化版權制約以及原始碼面臨閉源的問題,1984年Ritchard Stallman發起了開發自由軟體的運動,併成立自由軟體基金會(Free Software Foundation)和GNU(GUN is Not Unix)專案以及GPL(GNU General Public License)協議,目標是編寫大量兼容於Unix系統的自由軟體。GNU專案最終產出了Linux系統的重要元件,包括GCC編譯器,Emacs編輯器,bash命令解釋程式和程式語言以及gawk。自由不代表免費,例如RedHat的RHEL是自由但是不免費的作業系統,提供的服務收費。GPL是保證任何人有共享和修改自由軟體的自由,任何人有權獲取、修改、釋出自由軟體的原始碼的權利,但同時給出具體的修改的原始碼。LGPL(Lesser General Public License)相對於GPL較為寬鬆,允許不公開全部原始碼。

開源軟體

開源指的是軟體和原始碼提供給所有人,同時能夠自由分發軟體和原始碼,能夠自由的修改和建立其衍生品。而目前軟體型別可以分為商業軟體,共享軟體以及自由軟體。商業軟體就是使用收費,例如Window10企業版,Office2016,Edraw Max等等都是商業軟體,其特點就是收費並且不開放原始碼。共享軟體就是免費,但是不開放原始碼,功能會有所侷限,相當於免費版自由軟體是開放原始碼,並且能夠自由修改、分發,但是自由不一定意味著免費,典型的RedHat公司發行的REHL就是自由,但是提供的服務是收費的。

開源協議

目前世界上開源軟體有不同的開源許可證,常見的有Apache,MIT,LGPL等等。其中Apache協議指的是他人修改原始碼後能夠閉源,但是每一個修改過的檔案,必須要放置版權說明MIT協議在Apache協議的基礎之上,每個修改的檔案不需要放置版權說明,並且衍生軟體的廣告,還可以用你的名字促銷,應該是最寬鬆的開源許可協議。LGPL協議指的是他人修改軟體的原始碼之後不能閉源,同時新增的程式碼也不能採用同樣的許可證,但是修改原始碼的地方不需要提供說明文件,而Mozila協議是需要提供說明文件。CentOS系列都是遵守GPLV2協議,可以使用rpm -qi kernel命令檢視

[root@centOS6 ~]# rpm -qi kernelName : kernel Relocations: (not relocatable)Version : 2.6.32 Vendor: CentOSRelease : 754.el6 Build Date: Wed 20 Jun 2018 05:43:27 AM CSTInstall Date: Sat 26 Jan 2019 12:32:12 AM CST Build Host: x86-01.bsys.centos.orgGroup : System Environment/Kernel Source RPM: kernel-2.6.32-754.el6.src.rpmSize : 139595110 License: GPLv2Signature : RSA/SHA1, Wed 20 Jun 2018 07:38:57 PM CST, Key ID 0946fca2c105b9dePackager : CentOS BuildSystem <http://bugs.centos.org>URL : http://www.kernel.org/Summary : The Linux kernelDescription :The kernel package contains the Linux kernel (vmlinuz), the core of anyLinux operating system. The kernel handles the basic functionsof the operating system: memory allocation, process allocation, deviceinput and output, etc.

CentOS7.6的版權宣告

[root@centos7 ~]# rpm -qi kernelName : kernelVersion : 3.10.0Release : 957.el7Architecture: x86_64Install Date: Fri 25 Jan 2019 12:48:59 PM CSTGroup : System Environment/KernelSize : 66192729License : GPLv2Signature : RSA/SHA256, Mon 12 Nov 2018 10:30:44 PM CST, Key ID 24c6a8a7f4a80eb5Source RPM : kernel-3.10.0-957.el7.src.rpmBuild Date : Fri 09 Nov 2018 08:08:59 AM CSTBuild Host : kbuilder.bsys.centos.orgRelocations : (not relocatable)Packager : CentOS BuildSystem <http://bugs.centos.org>Vendor : CentOSURL : http://www.kernel.org/Summary : The Linux kernelDescription :The kernel package contains the Linux kernel (vmlinuz), the core of anyLinux operating system. The kernel handles the basic functionsof the operating system: memory allocation, process allocation, deviceinput and output, etc.
Linux概述Linux發展歷史以及組成

我們通常所說的Linux通常指的是核心(kernel),而如果只有核心,就不是一個完整的作業系統,還需要許多能夠解決實際問題的應用程式。

而最早期的Linux核心是由Linus Torvalds在大學教授Andrew Tanenbaum開發的Minix基礎之上開發的,1991年年底釋出了Linux核心的0.02版本,自那以後全世界的開源愛好者們共同推進著Linux系統的發展,使其在伺服器端,嵌入式和PC桌面得到了廣泛的運用。

Linux系統=Linux核心+GNU專案元件+各種應用程式(Apache,Nginx,Zabbix)

核心主要是實現系統記憶體管理,軟體程式管理,硬體裝置管理,檔案系統管理

GNU元件主要包含處理檔案(gawk)、操作文字、管理程序的工具以及shell,gcc等等

常見的應用程式包含不同的圖形化介面(KDE,GNOME,XFace),運行於桌面端的Firefox,Chrome和運行於服務端Nginx,Apache等等。

Linux系統的特點

Linux系統的特點(繼承Unix之外的)

開放原始碼、自由傳播的類Unix基於Intel X86系列CPU支援多工、多執行緒、多CPU、多使用者完善的圖形使用者介面:GNOME,KDE完善的開發平臺:Java/C/C++/Python支援主流資料庫:MySQL,Oracle,PostgreSQL完善的網路服務:HTTP、WWW,SFTP,DNS,SSH等等 Linux主流發行版

為了便於Linux系統的安裝和使用,誕生了諸如RedHat公司的Linux發行商,將Linux核心和各種系統元件以及應用元件組合成一個完整的作業系統。目前主流的Linux發行版主要由三個,分別是RedHat,Debian和Slackware,後續主流的RHEL,Ubuntu,Open SUSE都是基於前面三個分支演進而來的。

DebianUbuntuMintSlackwareSUSE Linux Enterprise ServerOpen SUSERedHatRHELCentOS

關於RHEL和CentOS的關係:CentOS是基於RHEL原始碼編譯而來,僅僅去除了RHEL原始碼的商標以及非自由軟體部分。面對如此多的發行版該如何選擇呢?如果你想從事Linux系統運維與架構設計的工作,推薦使用CentOS6.10版本或者CentOS7.6。CentOS6.10

CentOS7.6

值得一提的是目前最新的CentOS版本是CentOS8,但是本人沒有買阿里雲的伺服器,VMWareWorkStation目前暫時不支援CentOS8。

如果是想嘗試下Linux的桌面版,推薦可以使用Open SUSE LEAP 42.3或者Ubuntu18.04。

Ubuntu18.04

如果以上的發行版無法滿足你的需求,可以訪問下面的連線,獲取所有的Linux發行版資訊。https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

Linux系統的應用領域

經過20多年的發展,現在的Linux在伺服器領域、桌面領域、移動嵌入式領域和雲端計算、大資料領域佔據了廣闊的市場。其中伺服器領域在全球佔據了75%的市場份額而Ubuntu也作為最流行的桌面版Linux,基本可以滿足日常辦公需要,但是普及遠遠不及Windows。通過Linux系統架構圖可以得知手機作業系統Android的核心就是基於Linux修改而來的。

Unix/Linux哲學思想一切皆檔案:普通的檔案,目錄、字元裝置、塊裝置、 套接字等在 Unix/Linux 中都是以檔案被對待;它們雖然型別不同,但是對其提供的卻是同一套操作介面。小型,單一用途的程式:程式和可執行檔案不要太複雜,這樣才能保證了linux核心的高效執行。連結程式,共同完成複雜的任務:複雜的任務可以通過連線多個簡單的程式實現複雜的功能。對於複雜的功能linux通過許多簡單程式的組合等方式實現,在保證簡單功能的高效性的同時,複雜的程式也必然是高效性的。避免令人困惑的使用者介面:如Windows那樣出了問題一般人選擇的會是重啟,實在是不行的話就是重新安裝系統了,因為對於Windows那樣不是開源的,並且使用者介面比較複雜作業系統出了問題,一般的人是根本沒有辦法解決的。但是linux就不一樣了,第一linux是開源的,無論什麼問題都可以通過簡潔的命令列實現排錯,修改系統的配置,一切都是簡潔明了為基礎。配置資料儲存在文字中:linux所有的配置檔案都存放在文字配置檔案當中,無論什麼配置修改都只需修改其配置檔案即可,配置檔案時文字形式的只需任意一款文字編輯器修改即可而不是類似於Windows那樣將儲存在登錄檔中,並且Windows的登錄檔需要專門的二進位制或十六進位制的編輯器才可編輯,修改比較複雜。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Android 10.0系統啟動之Zygote程序(一)-「Android取經之路」