主頁 > 作業系統 > KVM虛擬化基礎

KVM虛擬化基礎

2020-09-30 08:10:35 作業系統

關于虛擬化

什么是虛擬化

在計算機技術中,虛擬化(技術)或虛擬技術(英語:Virtualization)是一種資源管理技術,是將計算機的各種物體資源(CPU、記憶體、磁盤空間、網路配接器等),予以抽象、轉換后呈現出來并可供磁區、組合為一個或多個電腦配置環境,

由此,打破物體結構間的不可切割的障礙,使用戶可以比原本的配置更好的方式來應用這些電腦硬體資源,這些資源的新虛擬部分是不受現有資源的架設方式,地域或物理配置所限制,

一般所指的虛擬化資源包括計算能力和資料存盤,

由于目前資訊技術領域的很多企業都曾在宣傳中將該企業的某種技術稱為虛擬化技術,這些技術涵蓋的范圍可以從Java虛擬機技術到系統管理軟體,這就使得準確的界定虛擬技術變得困難,因此各種相關學術論文在談到虛擬技術時常常提到的便是如前面所提到的那個不嚴格的定義,

為什么用虛擬化

同一臺物理機運行多個不同版本應用軟體
硬體依賴性較低和便于資料遷移

虛擬化技術的優勢

1.降低運營成本
服務器虛擬化降低了IT基礎設施的運營成本,令系統管理員擺脫了繁重的物理服務器、OS、中間件及兼容性的管理作業,減少人工干預頻率,使管理更加強大、便捷,
2.提高應用兼容性
服務器虛擬化提供的封裝性和隔離性使大量應用獨立運行于各種環境中,管理人員不需頻繁根據底層環境調整應用,只需構建一個應用版本并將其發布到虛擬化后的不同型別平臺上即可,
3.加速應用部署
采用服務器虛擬化技術只需輸入激活配置引數、拷貝虛擬機、啟動虛擬機、激活虛擬機即可完成部署,大大縮短了部署時間,免除人工干預,降低了部署成本,
4.提高服務可用性
用戶可以方便地備份虛擬機,在進行虛擬機動態遷移后,可以方便的恢復備份,或者在其他物理機上運行備份,大大提高了服務的可用性,
5.提升資源利用率
通過服務器虛擬化的整合,提高了CPU、記憶體、存盤、網路等設備的利用率,同時保證原有服務的可用性,使其安全性及性能不受影響,
6.動態調度資源
在服務器虛擬化技術中,資料中心從傳統的單一服務器變成了統一的資源池,用戶可以即時地調整虛擬機資源,同時資料中心管理程式和資料中心管理員可以靈活根據虛擬機內部資源使用情況靈活分配調整給虛擬機的資源,
7.降低能源消耗
通過減少運行的物理服務器數量,減少CPU以外各單元的耗電量,達到節能減排的目的,

KVM簡介

KVM,基于內核的虛擬機(英語:Kernel-based Virtual Machine,縮寫為 KVM),是一種用于Linux內核中的虛擬化基礎設施,可以將Linux內核轉化為一個hypervisor,KVM在2007年2月被匯入Linux 2.6.20核心中,以可加載核心模塊的方式被移植到FreeBSD及illumos上,

KVM在具備Intel VT或AMD-V功能的x86平臺上運行,它也被移植到S/390,PowerPC與IA-64平臺上,在Linux內核3.9版中,加入ARM架構的支持,

KVM目前由Red Hat等廠商開發,對CentOS/Fedora/RHEL等Red Hat系發行版支持極佳,

關于KVM

  1. KVM是開源軟體,全稱是kernel-based virtual machine(基于內核的虛擬機),

  2. 是x86架構且硬體支持虛擬化技術(如 intel VT 或 AMD-V)的Linux全虛擬化解決方案,

  3. 它包含一個為處理器提供底層虛擬化 可加載的核心模塊kvm.ko(kvm-intel.ko或kvm-AMD.ko),

  4. KVM還需要一個經過修改的QEMU軟體(qemu-kvm),作為虛擬機上層控制和界面,

  5. KVM能在不改變linux或windows鏡像的情況下同時運行多個虛擬機,(它的意思是多個虛擬機使用同一鏡像)并為每一個虛擬機配置個性化硬體環境(網卡、磁盤、圖形配接器……)同時KVM還能夠使用ksm技術幫助宿主服務器節約記憶體,

  6. 在主流的Linux內核,如2.6.20以上的內核均已包含了KVM核心,

關于Virtual Machine Manager

電腦運算中,紅帽公司的Virtual Machine Manager是一個虛擬機管理員,可以讓用戶管理多個虛擬機,
基于內核的虛擬機libvirt與Virtual Machine Manager, 
Virtual Machine Manager可以讓用戶:

創建、編輯、引導或停止虛擬機,
查看并控制每個虛擬機的控制臺,
查看每部虛擬機的性能以及使用率,
查看每部正在運行中的虛擬機以及主控端的即時性能及使用率資訊,
不論是在本機或遠程,皆可使用KVM、Xen、QEMU,


其他虛擬化軟體

?? Xen
  Xen是一個開放源代碼虛擬機監視器,由XenProject開發,它打算在單個計算機上運行多達128個有完全功能的作業系統,
  在舊(無虛擬硬體)的處理器上執行Xen,作業系統必須進行顯式地修改(“移植”)以在Xen上運行(但是提供對用戶應用的兼容性),這使得Xen無需特殊硬體支持,就能達到高性能的虛擬化,

?? QEMU
  QEMU是一套由Fabrice Bellard所撰寫的模擬處理器的自由軟體,它與Bochs,PearPC近似,但其具有某些后兩者所不具備的特性,如高速度及跨平臺的特性,經由KVM(早期為kqemu加速器,現在kqemu已被KVM取代)這個開源的加速器,QEMU能模擬至接近真實電腦的速度,QEMU有兩種主要運作模式:

  User mode模擬模式,亦即是用戶模式,
  QEMU能引導那些為不同中央處理器編譯的Linux程式,而Wine及Dosemu是其主要目標,

  System mode模擬模式,亦即是系統模式,
  QEMU能模擬整個電腦系統,包括中央處理器及其他周邊設備,它使得為系統源代碼進行測驗及除錯作業變得容易,其亦能用來在一部主機上模擬數部不同虛擬電腦,

KVM部署與使用

系統環境說明

[root@kvm01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@kvm01 ~]# uname -r
3.10.0-693.el7.x86_64
[root@kvm01 ~]# sestatus
SELinux status:                 disabled
[root@kvm01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@kvm01 ~]# hostname -I
10.0.0.11
# kvm主機記憶體不能低于4GB

安裝KVM虛擬化軟體

安裝依賴包(可以使用本地yum源)

[root@kvm01 ~]# yum install libvirt* virt-* qemu-kvm* -y

# libvirt   # 作用:虛擬機的管理軟體
# virt      # virt-install virt-clone   作用:虛擬機的安裝和克隆
# qemu-kvm  # qemu-img 作用:復制管理虛擬機的磁盤  管理虛擬機磁盤

啟動服務

[root@kvm01 ~]# systemctl start libvirtd.service
[root@kvm01 ~]# systemctl status libvirtd.servic

安裝VNC軟體(windows版):

下載vnc軟體方法,tightvnc官網:  http://www.tightvnc.com

  VNC軟體,用于VNC(Virtual Network Computing),為一種使用RFB協議的顯示屏畫面分享及遠程操作軟體,此軟體借由網路,可發送鍵盤與滑鼠的動作及即時的顯示屏畫面,
  VNC與作業系統無關,因此可跨平臺使用,例如可用Windows連接到某Linux的電腦,反之亦同,甚至在沒有安裝客戶端程式的電腦中,只要有支持JAVA的瀏覽器,也可使用,
  安裝VNC時,使用默認安裝即可,無需安裝server端,(只安裝客戶端)

配置第一臺KVM虛擬機

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 \
--name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 \
--cdrom /opt/CentOS-7.4-x86_64-DVD-1708.iso --network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole

注意:
需要先將鏡像檔案拷貝到 /opt/目錄下,xshell下使用xftp  默認的rz sz不行
VMware需要在配置內開啟虛擬化

使用引數說明

引數 引數說明
--virt-type HV_TYPE 要使用的管理程式名稱 (kvm, qemu, xen, ...)
--os-type 系統型別
--os-variant DISTRO_VARIANT 在客戶機上安裝的作業系統,例如:'fedora18'、'rhel6'、'winxp' 等,
-n NAME, --name NAME 客戶機實體名稱
--memory MEMORY 配置客戶機虛擬記憶體大小
--vcpus VCPUS 配置客戶機虛擬 CPU(vcpu) 數量,
--disk DISK 指定存盤的各種選項,
-cdrom CDROM 光驅安裝介質
-w NETWORK, --network NETWORK 配置客戶機網路介面,
--graphics GRAPHICS 配置客戶機顯示設定,
虛擬化平臺選項:
-v, --hvm 這個客戶機應該是一個全虛擬化客戶機
-p, --paravirt 這個客戶機應該是一個半虛擬化客戶機
--container 這個客戶機應該是一個容器客戶機
--virt-type HV_TYPE 要使用的管理程式名稱 (kvm, qemu, xen, ...)
--arch ARCH 模擬 CPU 架構
--machine MACHINE 機器型別為仿真型別
其它選項:
--noautoconsole 不要自動嘗試連接到客戶端控制臺
--autostart 主機啟動時自動啟動域,
--noreboot 安裝完成后不啟動客戶機,
以上資訊通過 " virt-install --help " 獲得,

在啟動的同時使用vnc連接

然后開始安裝系統

KVM虛擬機管理操作

virsh命令常用引數總結

引數 引數說明
基礎操作
list 查看虛擬機串列,列出域
start 啟動虛擬機,開始一個(以前定義的)非活躍的域
shutdown 關閉虛擬機,關閉一個域
destroy(危險) 強制關閉虛擬機,銷毀(停止)域
vncdisplay 查詢虛擬機vnc埠號
reboot 重啟(有些版本不支持)
配置管理操作
dumpxml 匯出主機配置資訊
undefine 洗掉主機
define 匯入主機配置
domrename 對虛擬機進行重命名
掛起與恢復
suspend 掛起虛擬機
resume 恢復虛擬機
自啟動管理
autostart 虛擬機開機啟動
autostart --disable 取消虛擬機開機啟動
以上引數通過  “virsh  --help” 獲得,

KVM虛擬機組態檔位置

[root@kvm ~]# ll /etc/libvirt/qemu/centos7.xml

修改KVM組態檔

修改KVM虛擬機配置的方法

[root@kvm ~]# virsh edit centos7

使用該命令修改可以對檔案進行語法校驗,(如crontable -e)

備份與恢復

備份虛擬機配置(關機時備份):

[root@kvm ~]# virsh dumpxml centos7  > centos7.xml

洗掉虛擬機配置

# 查看
[root@kvm ~]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------
 -     centos7                        關閉
 # 洗掉
[root@kvm ~]# virsh undefine centos7 
域 centos7 已經被取消定義
[root@kvm ~]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------

匯入虛擬機

# 匯入  備份(dumpxml)
[root@kvm ~]# virsh define centos7.xml 
定義域 centos7(從 centos7-off.xml)
# 查看
[root@kvm ~]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------
 -     centos7                        關閉

修改虛擬機名稱

# 重命名
[root@kvm ~]# virsh domrename centos7 web01
Domain successfully renamed
# 查看
[root@kvm ~]# virsh list
 Id    名稱                         狀態
----------------------------------------------------
 9     web01                          關閉

虛擬機掛起與恢復

掛起虛擬機

[root@kvm01 ~]# virsh suspend centos7
域 centos7 被掛起
# 查看狀態
[root@kvm01 ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 9     centos7                          暫停

恢復虛擬機

[root@kvm01 ~]# virsh resume centos7
域 centos7 被重新恢復

查詢虛擬機vnc埠

[root@kvm ~]# virsh vncdisplay centos7 
:0  
# :0 即 為 5900 埠,以此類推 :1為5901 ,

開機自啟動設定

# 設定 libvirtd 服務開機自啟動,
[root@kvm ~]# systemctl enabled libvirtd.service 
enabled

設定宿主機開機虛擬機在其他

[root@kvm ~]# virsh autostart centos7 
域 nfsnobody標記為自動開始
# 實質為創建軟連接
[root@kvm ~]# ll /etc/libvirt/qemu/autostart/centos7.xml 
lrwxrwxrwx 1 root root 27 1月  22 12:17 /etc/libvirt/qemu/autostart/centos7.xml -> /etc/libvirt/qemu/centos7.xml

取消開機自啟動

[root@kvm ~]# virsh autostart --disable centos7 
域 centos7取消標記為自動開始

kvm虛擬機console登錄

CentOS 7.X 版本console登錄

配置console登錄

在centos7虛擬機內操作(該操作僅限centos7):

[root@kvm01 ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@kvm01 ~]# reboot
# 115200n8:能顯示虛擬機的啟動程序

重啟完成后,使用virsh console 連接虛擬機,

[root@kvm ~]# virsh console centos7 
連接到域 centos7
換碼符為 ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

centos7 login: root
Password: 
Last login: Mon Jan 22 12:24:48 from 192.168.122.1
[root@centos7 ~]# w
 12:26:11 up 0 min,  1 user,  load average: 0.09, 0.03, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     ttyS0                     12:26    3.00s  0.02s  0.01s w

CentOS 6.X 版本console登錄

使用virsh console連接CentOS 6虛擬主機方法:

  安裝一臺centos6的kvm虛擬機

virt-install --virt-type kvm --os-type=linux --os-variant rhel6 \
--name centos6 --memory 1124 --vcpus 1 \
--disk /data/centos6/centos6.raw,format=raw,size=10 \
--cdrom /data/CentOS-6.9-x86_64-bin-DVD1.iso \
--network network=default --graphics vnc,listen=0.0.0.0,port=5901 \
--noautoconsole

新安裝一臺虛擬機后,是無法通過virsh console 命令連入虛擬機中的,這時我們需要開啟虛擬機的console功能,

以下操作都在虛擬機中進行
1、添加ttyS0的許可,允許root登陸

[root@centos6 ~]# echo "ttyS0" >> /etc/securetty

2、編輯/etc/grub.conf中加入console=ttyS0
在該檔案的第16行,kernel選項后添加

[root@centos6 ~]# sed -i '/\tkernel/s#.*#& console=ttyS0#g' /etc/grub.conf
[root@centos6 ~]# sync  # 同步配置到 /boot/grub/grub.conf
[root@centos6 ~]# cat -n  /etc/grub.conf 
     1    # grub.conf generated by anaconda
     2    #
     3    # Note that you do not have to rerun grub after making changes to this file
     4    # NOTICE:  You have a /boot partition.  This means that
     5    #          all kernel and initrd paths are relative to /boot/, eg.
     6    #          root (hd0,0)
     7    #          kernel /vmlinuz-version ro root=/dev/vda3
     8    #          initrd /initrd-[generic-]version.img
     9    #boot=/dev/vda
    10    default=0
    11    timeout=5
    12    splashimage=(hd0,0)/grub/splash.xpm.gz
    13    hiddenmenu
    14    title CentOS 6 (2.6.32-696.el6.x86_64)
    15        root (hd0,0)
    16        kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=48532582-c271-4c0a-b55f-395fe16cd8aa rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
    17        initrd /initramfs-2.6.32-696.el6.x86_64.img

3、編輯/etc/inittab
  在最后一行加入內容 S0:12345:respawn:/sbin/agetty ttyS0 115200

[root@centos6 ~]# echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >>/etc/inittab

4、以上操作都完成后,重啟虛擬機

[root@centos6 ~]# reboot

以下操作在kvm宿主機上執行
1、檢查虛擬機的狀態

[root@kvm ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 11    nfsnobody                          running
 21    nfsnobody6                          running

2、進行連接測驗

[root@kvm ~]# virsh console nfsnobody6 
連接到域 nfsnobody6
換碼符為 ^]  # 注:退出virsh console連接的方法,使用組合鍵Ctrl+]即可

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

nfsnobody6 login: root
Password: 
Last login: Mon Jan 22 05:44:25 on ttyS0
[root@nfsnobody6 ~]# who
root     ttyS0        2018-01-22 05:50
# 登陸成功,查看登陸介面為之前設定的ttyS0

KVM虛擬機磁盤、快照與克隆

磁盤管理

KVM qcow2、raw、vmdk等鏡像格式說明:

http://blog.csdn.net/zhengmx100/article/details/53887162
# 創建一塊qcow2的虛擬硬碟(僅測驗使用,無實際意義)
[root@kvm01 data]# qemu-img create -f qcow2 nfsnobody.qcow2 2G

查看當前虛擬機硬碟資訊

[root@kvm01 ~]# qemu-img info /data/nfsnobody.raw 
image: /data/nfsnobody.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.1G

raw轉qcow2格式:

# 引數說明
[root@kvm01 data]# qemu-img  --help |grep convert 
qemu-img convert [-f fmt] [-O output_fmt] filename  output_filename

轉換原有磁盤格式

[root@kvm01 data]# qemu-img convert -f raw -O qcow2 nfsnobody.raw nfsnobody.qcow2

修改nfsnobody 虛擬機組態檔

[root@kvm01 data]# virsh edit nfsnobody 
修改前:
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/data/nfsnobody.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
修改后:
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/nfsnobody.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>

洗掉原磁盤檔案

[root@kvm01 data]# \rm nfsnobody.raw

啟動虛擬機

[root@kvm01 data]# virsh start nfsnobody 

[root@kvm01 data]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------
 22    nfsnobody                          running

KVM鏈接克隆

鏈接克隆腳本

#!/bin/bash
# kvm link clone scripts  
# user nfsnobody 
# blog: https://www.nfsnobody.com
# 2018-02-06
###

# init
if [ $# -ne 2 ]
  then 
    echo "Usage: $0 OLD_VMNAME NEW_VMNAME"
    exit 2
fi
LOG=/var/log/messages
old_vm=$1
new_vm=$2
new_xml="/tmp/${new_vm}.xml"
. /etc/init.d/functions

# dump old xmlfile 
virsh dumpxml $old_vm >$new_xml
old_disk=`awk -F "'" '/source file/{print $2}'  $new_xml`
tmp_dir=`dirname $old_disk`
new_disk=${tmp_dir}/${new_vm}.qcow2

# make link disk 
qemu-img create -f qcow2 -b $old_disk $new_disk &>> $LOG

# make over xml info 
sed -i '/uuid/d' $new_xml
sed -i '/mac address/d' $new_xml
sed -i '2s#'$old_vm'#'$new_vm'#' $new_xml
sed -i "s#$old_disk#$new_disk#g" $new_xml
sed -i '/source mode/d' $new_xml

# import new xml file
virsh define $new_xml &>> $LOG

# start new vm 
virsh start $new_vm &>> $LOG
if [ $? -eq 0 ]
  then 
   action "vmhost $new_vm start"  /bin/true 
else 
   action "vmhost $new_vm start"  /bin/false
   echo "log info : $LOG"
fi

# END
\rm $new_xml

說明:

手動克隆

第一步:復制虛擬磁盤檔案
第二步:修改xml組態檔
  1)name
  2)uuid
  3)虛擬磁盤存盤路徑
  4)mac地址

腳本實作思路

1) 備份old_vm的組態檔,并重定向生成一個新的虛擬機組態檔
2)取出old_vm的磁盤路徑
3)創建新的鏈接磁盤檔案
4) 修改xml組態檔
5) 匯入新虛擬機
6)啟動測驗

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/141381.html

標籤:Linux

上一篇:在香蕉派的樹莓派系統上配置 Syncthing 自啟動

下一篇:docker之阿里云centos 7.x 啟動容器報錯處理辦法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more