LVM原理及PV、VG、LV、PE、LE關係圖
LVM(邏輯分割槽管理)中的幾個概念:
PV(physical volume):物理卷在邏輯卷管理系統最底層,可為整個物理硬碟或實際物理硬碟上的分割槽。
VG(volume group):卷組建立在物理捲上,一卷組中至少要包括一物理卷,卷組建立後可動態的添加捲到卷組中,一個邏輯卷管理系統工程中可有多個卷組。
LV(logical volume):邏輯卷建立在卷組基礎上,卷組中未分配空間可用於建立新的邏輯卷,邏輯卷建立後可以動態擴充套件和縮小空間。
PE(physical extent):物理區域是物理卷中可用於分配的最小儲存單元,物理區域大小在建立卷組時指定,一旦確定不能更改,同一卷組所有物理卷的物理區域大小需一致,新的pv加入到vg後,pe的大小自動更改為vg中定義的pe大小。
LE(logical extent):邏輯區域是邏輯卷中可用於分配的最小儲存單元,邏輯區域的大小取決於邏輯卷所在卷組中的物理區域的大小。
卷組描述區域:卷組描述區域存在於每個物理卷中,用於描述物理卷本身、物理卷所屬卷組、卷組中邏輯卷、邏輯卷中物理區域的分配等所有資訊,它是在使用pvcreate建立物理卷時建立的。
步驟:
1.準備物理分割槽(Physical Partions)
首先,我們需要選擇用於 LVM 的物理儲存器。這些通常是標準分割槽,但也可以是已建立的 Linux Software RAID 卷。這裡我利用fdisk命令,將sdb、sdc兩塊磁碟分了兩個區sdb1、sdc1, 通過fdisk的t指令指定分割槽為8e型別(Linux LVM) 。如圖1所示。
圖1 準備物理分割槽的指令執行介面
2.建立物理卷PV(Physical Volumes)
物理卷(Physical Volumes)簡稱PV,是在磁碟的物理分割槽或與磁碟分割槽具有同樣功能的裝置(如RAID)上建立而來。它只是在物理分割槽中劃出了一個特殊的區域,用於記載與LVM相關的管理引數。
建立物理卷的命令是 pvcreate :
[
Physical volume "/dev/sdb1" successfully created
[[email protected] ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
以上命令分別將/dev/sdc1、/dev/sdd1初始化成物理卷,使用物理卷顯示命令pvdisplay檢視物理卷情況如下:
[[email protected] ~]# pvdisplay
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 36.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QDmnUd-tuvH-U4Hn-n5Ry-zGRT-O1yK-67Dxbb
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 36.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID NDBf68-6qrD-9hE6-Rotv-RdxL-Azvv-7NlC0S
3.建立卷組VG(Volume Groups)
卷組(Volume Group)簡稱VG,它是一個或者多個物理卷的組合。卷組將多個物理卷組合在一起,形成一個可管理的單元,它類似於非LVM系統中的物理硬碟。
建立卷組的命令為vgcreate,下面利用它建立了一個名為“lvmdisk”的卷組,該卷組包含/dev/sdb1、/dev/sdc1兩個物理卷。
[[email protected] ~]# vgcreate lvmdisk /dev/sdb1 /dev/sdc1
Volume group "lvmdisk" successfully created
使用卷組檢視命令vgdisplay顯示卷組情況:
[[email protected] ~]# vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 71.98 GB
PE Size 4.00 MB
Total PE 18428
Alloc PE / Size 0 / 0
Free PE / Size 18428 / 71.98 GB
VG UUID SARfuj-wAUI-od81-VWAc-A1nt-aaFN-JWaPVf
當多個物理卷組合成一個卷組後時,LVM會在所有的物理捲上做類似格式化的工作,將每個物理卷切成一塊一塊的空間,這一塊一塊的空間就稱為PE(Physical Extent ),它的預設大小是4MB。
由於受核心限制的原因,一個邏輯卷(Logic Volume)最多隻能包含65536個PE(Physical Extent),所以一個PE的大小就決定了邏輯卷的最大容量,4 MB 的PE決定了單個邏輯卷最大容量為 256 GB,若希望使用大於256G的邏輯卷,則建立卷組時需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小範圍為8 KB 到 16GB,並且必須總是 2 的倍數。
例如,如果希望使用 64 MB 的PE建立卷組,這樣邏輯卷最大容量就可以為4 TB,命令如下:
# vgcreate - 64MB lvmdisk /dev/sdb1 /dev/sdc1
4.建立邏輯卷LV(Logical Volumes)
邏輯卷(Logical Volumes)簡稱LV,是在卷組中劃分的一個邏輯區域,類似於非LVM系統中的硬碟分割槽。
建立邏輯卷的命令為lvcreate,通過下面的命令,我們在卷組lvmdisk上建立了一個名字為pldy1的邏輯卷,大小為15GB,其裝置入口為/dev/lvmdisk/pldy1。
[[email protected] dev]# lvcreate -L 15G -n pldy1 lvmdisk
Logical volume "pldy1" created
也可以使用-l引數,通過指定PE數來設定邏輯分割槽大小。
例如,希望建立一個使用全部空間的邏輯卷,需要先查清卷組中的PE總數,通過上面的vgdisplay命令查得當前卷組PE總數為18428,命令如下:
# lvcreate -l 18428 -n pldy1 lvmdisk
當邏輯卷建立成功後,可以使用lvdisplay命令檢視邏輯卷情況:
[[email protected] ~]# lvdisplay
--- Logical volume ---
LV Name /dev/lvmdisk/pldy1
VG Name lvmdisk
LV UUID FQcnm3-BMyq-NkJz-hykw-9xg1-Qy8d-8UeGCN
LV Write Access read/write
LV Status available
# open 0
LV Size 15.00 GB
Current LE 3840
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
同卷組一樣,邏輯卷在建立的過程中也被分成了一塊一塊的空間,這些空間稱為LE(Logical Extents),在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
5.建立檔案系統
在邏輯捲上建立ext3檔案系統:
[[email protected] ~]# mkfs -t ext3 /dev/lvmdisk/pldy1
建立了檔案系統以後,就可以載入並使用了:
[[email protected] ~]# mkdir /opt/Oracle
[[email protected] ~]# mount /dev/lvmdisk/pldy1 /opt/Oracle
為了在系統啟動時自動載入檔案系統,則還需要在/etc/fstab中新增內容:
/dev/lvmdisk/pldy1 /opt/Oracle ext3 defaults 1 2
管理LVM
LVM的最大好處就是可以動態地調整分割槽大小,而無須重新啟動機器,下面讓我們來體驗一下吧!繼續上面的例項,現假設邏輯卷/dev/lvmdisk/pldy1空間不足,需要增加其大小,我們分兩種情況討論:
1.卷組中有剩餘的空間
通過vgdisplay命令可以檢查當前卷組空間使用情況:
[[email protected] ~]# vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 71.98 GB
PE Size 4.00 MB
Total PE 18428
Alloc PE / Size 3840 / 15.00 GB
Free PE / Size 14588 / 56.98 GB
VG UUID SARfuj-wAUI-od81-VWAc-A1nt-aaFN-JWaPVf
確定當前卷組剩餘空間56.98GB,剩餘PE數量為14588個。在這裡將所有的剩餘空間全部增加給邏輯卷 /dev/lvmdisk/pldy1。
[[email protected] Oracle]# lvextend -l+14588 /dev/lvmdisk/pldy1
Extending logical volume pldy1 to 56.98 GB
Logical volume pldy1 successfully resized
上面的命令使用了-l+14588引數,它的意思是給指定的邏輯卷增加14588個PE。如果不是將全部空間都使用,還可使用其他形式的lvextend命令。
例如將邏輯卷/dev/lvmdisk/pldy1增加5GB的空間,使其空間達到20GB,可寫成: “# lvextend -L+5G /dev/lvmdisk/pldy1”或“# lvextend -L20G /dev/lvmdisk/pldy1”。增加了邏輯卷容量後,就要通過ext2online命令修改檔案系統的大小了。
[[email protected] ~]# ext2online /opt/Oracle/
轉換好後,讓我們檢視一下檔案系統的當前狀態:
[[email protected] ~]# df -lh
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/sda1 7.4G 1.8G 5.3G 25% /
none 135M 0 135M 0% /dev/shm
/dev/mapper/lvmdisk-pldy1 71G 81M 68G 1% /opt/Oracle
2.卷組中空間不足
當卷組中沒有足夠的空間用於擴充套件邏輯卷的大小時,就需要增加捲組的容量,而增加捲組容量的惟一辦法就是向卷組中新增新的物理卷。
首先是增加一塊新硬碟(36GB SCSI 硬碟),並對其完成分割槽、建立物理卷等工作。接下來是利用vgextend命令將新的物理卷(/dev/sdd1)加入到卷組中。
擴展卷組的命令如下:
[[email protected] ~]# vgextend lvmdisk /dev/sdd1
Volume group "lvmdisk" successfully extended
利用vgdisplay命令檢視卷組lvmdisk的情況:
[[email protected] ~]# vgdisplay
--- Volume group ---
VG Name lvmdisk
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 107.97 GB
PE Size 4.00 MB
Total PE 27640
Alloc PE / Size 3840 / 15.00 GB
Free PE / Size 23800 / 92.97 GB
VG UUID l8YPvz-uD7h-oj1A-0qS5-TFcT-mbC7-QbjzCu
完成卷組的擴容後,就可以按照第一種情況的方法完成邏輯卷的擴容,最終實現分割槽的動態調整。
======================================
Linx卷管理詳解
VG LV PV
作者:吳偉龍
一、 前言
每個Linux使用者在安裝Linux時 都會遇到這樣的困境:在為系統分割槽時,如何精確評估和分配各個硬碟分割槽的容量,因為系統管理員不但要考慮到當前某個分割槽需要的容量,還要預見該分割槽以後可能需要的容量的最大值。因為如果估計不準確,當遇到某個分割槽不夠用時管理員可能甚至要備份整個系統、清除硬碟、重新對硬碟分割槽,然後恢復資料到新分割槽。
雖然現在有很多動態調整磁碟的工具可以使用,例如Partation Magic等等,但是它並不能完全解決問題,因為某個分割槽可能會再次被耗盡;另外一個方面這需要重新引導系統才能實現,對於很多關鍵的伺服器,停機是不可接受的,而且對於新增新硬碟,希望一個能跨越多個硬碟驅動器的檔案系統時,分割槽調整程式就不能解決問題。
因此完美的解決方法應該是在零停機前提下可以自如對檔案系統的大小進行調整,可以方便實現檔案系統跨越不同磁碟和分割槽。那麼我們可以通過邏輯盤卷管理(LVM,Logical Volume Manager)的方式來非常完美的實現這一功能。
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,他是磁碟管理的另一種工具,就目前基本上所有作業系統均支援,LVM是建立在硬碟和分割槽之上的一個邏輯層,來提高磁碟分割槽管理的靈活性。通過LVM系統管理員可以輕鬆管理磁碟分割槽,如:將若干個磁碟分割槽連線為一個整塊的卷組(volume group),形成一個儲存池。管理員可以在卷組上隨意建立邏輯卷組(logical volumes),並進一步在邏輯卷組上建立檔案系統。管理員通過LVM可以方便的調整儲存卷組的大小,並且可以對磁碟儲存按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“DBdata”和“DBSoft”,而不是使用物理磁碟名“sda”和“sdb”或”hda”和”hdb”。而且當系統添加了新的磁碟,通過LVM管理員就不必將磁碟的檔案移動到新的磁碟上以充分利用新的儲存空間,而是直接擴充套件檔案系統跨越磁碟即可,架構可以參考如下圖:
二、 LVM基本術語
前面談到,LVM是在磁碟分割槽和檔案系統之間新增的一個邏輯層,來為檔案系統遮蔽下層磁碟分割槽佈局,提供一個抽象的盤卷,在盤捲上建立檔案系統。首先我們討論以下幾個LVM術語:
物理儲存介質(The physical media)
這裡指系統的儲存裝置:硬碟,如:/dev/hda、/dev/sda等等,是儲存系統最低層的儲存單元。
物理卷(physicalvolume)
物理卷就是指硬碟分割槽或從邏輯上與磁碟分割槽具有同樣功能的裝置(如RAID),是LVM的基本儲存邏輯塊,但和基本的物理儲存介質(如分割槽、磁碟等)比較,卻包含有與LVM相關的管理引數。
卷組(Volume Group)
LVM卷組類似於非LVM系統中的物理硬碟,其由物理卷組成。可以在卷組上建立一個或多個“LVM分割槽”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logicalvolume)
LVM的邏輯卷類似於非LVM系統中的硬碟分割槽,在邏輯卷之上可以建立檔案系統(比如/home或者/usr等)。
PE(physical extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM定址的最小單元。PE的大小是可配置的,預設為4MB。
LE(logical extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被定址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
首先可以看到,物理卷(PV)被由大小等同的基本單元PE組成。
一個卷組由一個或多個物理卷組成:
從上圖可以看到,PE和LE有著一一對應的關係。邏輯卷建立在卷組上。邏輯卷就相當於非LVM系統的磁碟分割槽,可以在其上建立檔案系統。
下圖是磁碟分割槽、卷組、邏輯卷和檔案系統之間的邏輯關係的示意圖:
和非LVM系統將包含分割槽資訊的元資料儲存在位於分割槽的起始位置的分割槽表中一樣,邏輯卷以及卷組相關的元資料也是儲存在位於物理捲起始處的VGDA(卷組描述符區域)中。VGDA包括以下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。
系統啟動LVM時啟用VG,並將VGDA載入至記憶體,來識別LV的實際物理儲存位置。當系統進行I/O操作時,就會根據VGDA建立的對映機制來訪問實際的物理位置。
三、 安裝LVM
首先確定系統中是否安裝了lvm工具:
[[email protected] ~]# rpm -qa|grep lvm
system-config-lvm-1.1.5-1.0.el5
lvm2-2.02.46-8.el5
如果命令結果輸入類似於上例,那麼說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網路下載或者從光碟裝LVM rpm工具包。
安裝了LVM的RPM軟體包以後,要使用LVM還需要配置核心支援LVM。RedHat預設核心是支援LVM的,如果需要重新編譯核心,則需要在配置核心時,進入Multi-device Support (RAID and LVM)子選單,選中以下兩個選項:
[*]Multiple devices driver support (RAID and LVM)
<*>Logical volume manager (LVM) Support
然後重新編譯核心,即可將LVM的支援新增到新核心中。
為了使用LVM,要確保在系統啟動時啟用LVM,幸運的是在RedHat7.0以後的版本,系統啟動指令碼已經具有對啟用LVM的支援,在/etc/rc.d/rc.sysinit中有以下內容:
# LVMinitialization
if [ -e/proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
action$"Setting up Logical Volume Management:" /sbin/vgscan &&/sbin/vgchange -a y
fi
其中關鍵是兩個命令,vgscan命令實現掃描所有磁碟得到卷組資訊,並建立檔案卷組資料檔案/etc/lvmtab和/etc/lvmtab.d/*;vgchange -a y命令啟用系統所有卷組。
四、 建立和管理LVM
建立LV有兩種方式,一種是基於磁碟的,另外一種是基於分割槽的,如果是基於分割槽的就必須按照我之前講的通過fdisk或parted方式劃分好分割槽,但不要格式化來進行pvcreate建立處理卷,如果基於磁碟的就不需要建立分割槽了,直接就可以通過pvcreate來建立物理卷。因為只有建立好了物理卷之後才能新增到卷組,並在卷組裡面建立邏輯卷,後格式化才能存放資料。
要建立一個LVM系統,一般需要經過以下步驟:
建立基於磁碟的LV
1、 檢視磁碟資訊:
[[email protected]~]# fdisk -l
Disk/dev/sda: 21.4 GB, 21474836480 bytes
255heads, 63 sectors/track, 2610 cylinders
Units =cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2610 20860402+ 8e Linux LVM
我們就用如下兩塊磁碟來配置VG的管理
Disk /dev/sdb: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
2、 使用sdb建立基於磁碟的物理卷
[[email protected]~]# pvcreate /dev/sdb
Physical volume "/dev/sdb"successfully created
3、 檢視物理卷建立是否成功
[[email protected]~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 19.89 GB / not usable 19.49 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 636
Free PE 0
Allocated PE 636
PV UUID 9UuRWq-3nFG-pQvY-nkCN-WZgj-uzNW-cUI1ei
"/dev/sdb" is a newphysical volume of "500.00 GB" ----這裡是我們剛才建立的PV,已經成功
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 500.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3Xhu20-4Y4L-ITf5-MyXi-VLVN-kJ3M-LsoouK
[[email protected] ~]#
4、 建立data卷組:
[[email protected]~]# vgcreate data /dev/sdb
/dev/cdrom: open failed: 只讀檔案系統
/dev/cdrom: open failed: 只讀檔案系統
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "data" successfullycreated
5、 檢視卷組是否建立成功:
[[email protected] ~]# vgdisplay
--- Volume group --- ------我們可以看到,這就是我們剛才建立的vg,已經成功了,大小為500G,由一個PV組成
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 500.00 GB
PE Size 4.00 MB
Total PE 127999
Alloc PE / Size 0 / 0
Free PE / Size 127999 / 500.00 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
--- Volume group --- -----這是系統之前的卷組
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.88 GB
PE Size 32.00 MB
Total PE 636
Alloc PE / Size 636 / 19.88 GB
Free PE / Size 0 / 0
VG UUID 9BbNZr-0ILr-CP3K-debx-OyJM-hDru-C0gVuR
6、 啟用卷組
[[email protected]~]# vgchange -a y data
0 logical volume(s) in volume group"data" now active
7、 建立新的物理卷
[[email protected]~]# pvcreate /dev/sdc
Physical volume "/dev/sdc"successfully created
8、 將新的物理卷新增到現有卷組:
[[email protected]~]# vgextend data /dev/sdc
/dev/cdrom: open failed: 只讀檔案系統
Attempt to close device '/dev/cdrom' which isnot open.
Volume group "data" successfullyextended
9、 檢視卷組資訊:
我們可以看到,VG的大小由剛才的500G變成了現在的1T的空間,PV的數量也由之前的1個變成了兩個
[[email protected]~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
CurPV 2
ActPV 2
VG Size 999.99 GB
PE Size 4.00 MB
Total PE 255998
Alloc PE / Size 0 / 0
Free PE / Size 255998 / 999.99 GB
VG UUID wqyQM5-Rigb-5art-0H20-X9QW-OL6N-PDkI4o
10、 從現有的卷組中刪除一個物理卷:
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被任何邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷資訊,如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的資料備份到其他地方,然後再刪除。刪除物理卷的命令為vgreduce:
[[email protected]~]# vgreduce data /dev/sdc
Removed "/dev/sdc" fromvolume group "data" -----已經刪除成功
檢視VG資訊 我們可以看到磁碟已經被刪除,並且空間也由剛才的1T變成了500G
[[email protected]~]# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
相關推薦
LVM原理及PV、VG、LV、PE、LE關係圖
LVM(邏輯分割槽管理)中的幾個概念: PV(physical volume):物理卷在邏輯卷管理系統最底層,可為整個物理硬碟或實際物理硬碟上的分割槽。 VG(volume group):卷組建立在物理捲上,一卷組中至少要包括一物理卷,卷組建立後可動態
Redis 原理及應用(3)--記憶體淘汰機制、主從同步原理,HA策略(哨兵機制)分析
非精準的LRU 上面提到的LRU(Least Recently Used)策略,實際上Redis實現的LRU並不是可靠的LRU,也就是名義上我們使用LRU演算法淘汰鍵,但是實際上被淘汰的鍵並不一定是真正的最久沒用的,這裡涉及到一個權衡的問題,如果需要在全部鍵空間內搜尋最優解,則必然會增加系統的開銷,Re
Linux 物理卷(PV)、邏輯卷(LV)、卷組(VG)管理
(一)相關概念邏輯卷是使用邏輯卷組管理(Logic Volume Manager)創建出來的裝置,如果要了解邏輯卷,那麼首先需要了解邏輯卷管理中的一些概念。物理卷(Physical Volume,PV):也就是物理磁碟分割槽,如果想要使用LVM來管理這個分割槽,可以使用fdisk將其ID改為LVM可以識別的值
VUE -- JSONP的誕生、原理及應用實例
some body 發送 我們 att box 想要 random ati 問題: 頁面中有一個按鈕,點擊之後會更新網頁中的一個盒子的內容。 Ajax可以很容易的滿足這種無須刷新整個頁面就可以實現數據變換的需求。 但是,Ajax有一個缺點,就是他不允許跨域請求資源。
HTTP協議報文、工作原理及Java中的HTTP通信技術詳解
tor 報文 buffered mod protoc 禁止 ans 請求報文 客戶端 博客園 首頁 新隨筆 聯系 管理 訂閱
XML的定義、用途、原理及前景
tran 進制 標識符 ext 內容 成員 doc add AR xml一般指可擴展標記語言,標準通用標記語言的子集,是一種用於標記電子文件使其具有結構性的標記語言。 在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如
Hadoop — HDFS的概念、原理及基本操作
IE 觀察 poi 如何恢復 滾動 4.3 python metadata 元數據 1. HDFS的基本概念和特性 設計思想——分而治之:將大文件、大批量文件分布式存放在大量服務器上,以便於采取分而治之的方式對海量數據進行運算分析。在大數據系統中作用:為各類分布式運算框架(
nginx負載均衡、nginx ssl原理及生成密鑰對、nginx配制ssl
alt self. 加密傳輸 remote cat nginx ssl 之間 PE www. 1、nginx負載均衡 新建一個文件:vim /usr/local/nginx/conf/vhost/load.conf寫入: upstream abc_com{ ip_ha
詳解iptables防火墻SNAT、DNAT地址轉換工作原理及使用
路由器 信息 nat nat技術 成了 客戶端 目標地址 init5 ima NAT簡介 NAT是將私有IP地址通過邊界路由轉換成外網IP地址,在邊界路由的NAT地址轉換表中記錄下這個轉換,當數據返回時,路由使用NAT技術查詢NAT轉換表,再將目標地址替換成內網用戶IP地址
RSA加密、解密、簽名、驗籤的原理及方法
二、RSA加密、簽名區別 加密和簽名都是為了安全性考慮,但略有不同。常有人問加密和簽名是用私鑰還是公鑰?其實都是對加密和簽名的作用有所混淆。簡單的說,加密是為了防止資訊被洩露,而簽名是為了防止資訊被篡改。這裡舉2個例子說明。 第一個場景:戰場上,B要給A傳遞一條訊息,內容為某一指令。 RSA的加密過
RSA加密、解密、簽名、驗簽的原理及方法
發送消息 私鑰 簽名 兩個 篡改 方法 保留 即使 指令 二、RSA加密、簽名區別 加密和簽名都是為了安全性考慮,但略有不同。常有人問加密和簽名是用私鑰還是公鑰?其實都是對加密和簽名的作用有所混淆。簡單的說,加密是為了防止信息被泄露,而簽名是為了防止信息被篡改。這裏舉2
Android--四大元件之BroadCastReceiver(生命週期、實現原理及使用等)
####1. BroadCastReceiver是什麼? ####2. 廣播型別 ######1). 有序廣播 ######2). 無序廣播 ####3. 生命週期 ####4. 實現原理 ####5. 使用方法 ####6. 許可權問題(安全性) ####7. LocalBroad
SLC/MLC/TLC、EEPROM/NANDFLASH原理及區別
SLC = Single-Level Cell ,即1bit/cell,速度快壽命長,價格超貴(約MLC 3倍以上的價格),約10萬次擦寫壽命。 SLC 利用正、負兩種電荷 一個浮動柵儲存1個bit的資訊,約10萬次擦寫壽命。
演算法:棧的使用、原理及案例
棧 特點:後進先出 (last-in,first-out) 進棧(壓棧):push 出棧:pop 取棧頂: gettop 運用:棧進行括號匹配 class Stack: def __init__(self):
HTTP協議報文、工作原理及Java中的HTTP通訊技術詳解
一、web及網路基礎 1、HTTP的歷史 1.1、HTTP的概念: &nb
HashMap、ConcurrentHashMap實現原理及原始碼分析
HashMap:https://www.cnblogs.com/chengxiao/p/6059914.html ConcurrentHashMap:https://blog.csdn.net/dingjianmin/article/details/79776646 遺留問
資料庫分庫分表、讀寫分離的實現原理及使用場景
為什麼要分庫分表和讀寫分離? 類似淘寶網這樣的網站,海量資料的儲存和訪問成為了系統設計的瓶頸問題,日益增長的業務資料,無疑對資料庫造成了相當大的負載,同時對於系統的穩定性和擴充套件性提出很高的要求。隨著時間和業務的發展,資料庫中的表會越來越多,表中的資料量也會越來越
【RPC入門】RPC概念、原理及開發
RPC基礎概念 RPC(Remote Procedure Call)—遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。 在一般的應用程式中,被呼叫的過程在相同的地址空間中執行,並把結果返回給發出呼叫的過程。在分散式環境中,客戶機和伺服器在不同的機
分散式服務框架Zookeeper介紹、原理及應用
轉載:https://www.jianshu.com/p/bf32e44d3113 分散式服務框架Zookeeper介紹、原理及應用 Zookeeper簡介 Zookeeper 分散式服務框架是 Apache Hadoop 的一個子專案,它主要是用來解決分散式應用中經常遇到的一些資料管理
NIo、Bio、aio、 的原理及區別與應用場景
在高效能的IO體系設計中,有幾個名詞概念常常會使我們感到迷惑不解。具體如下: 序號 問題 1 什麼是同步? 2 什麼是非同步? 3 什麼是阻塞? 4 什麼是非阻塞? 5 什麼是同步阻塞? 6 什麼是同步非阻