云計算-OpenStack 實戰運維:從組件配置到故障排查(含 RAID、模板、存儲管理,網絡、存儲、鏡像、容器等)

介紹

在云計算技術快速發展的背景下,OpenStack 作為開源的云計算管理平臺,憑借其靈活性、可擴展性和強大的組件生態,成為構建私有云、公有云和混合云的重要選擇。無論是云主機的創建與管理、存儲方案的配置(如 RAID 陣列、Swift 對象存儲、Cinder 塊存儲),還是網絡編排、權限控制、性能調優等,都是 OpenStack 運維與實踐中的核心環節。

本文基于實際操作場景,匯總了 OpenStack 私有云平臺的一系列關鍵實戰操作,涵蓋了從基礎組件配置(如 Heat 模板編寫、云主機與網絡創建)到進階功能實現(存儲后端切換、參數調優),再到故障排查與日常管理(如快照處理、容器部署、權限控制)等多個維度。內容包含詳細的命令步驟、配置示例及驗證方法,旨在為 OpenStack 初學者提供入門指引,同時也為有經驗的運維人員提供一份實用的操作參考手冊,助力快速解決實際場景中的技術問題。

1.Raid磁盤陣列管理

在OpenStack私有云平臺,創建一臺云主機(鏡像使用CentOS7.5,flavor可自定義),并創建一個40G大小的cinder塊存儲,將塊存儲連接到云主機,然后在云主機上對云硬盤進行操作。要求分出4個大小為5G的分區,使用這4個分區,創建名為/dev/md5、raid級別為5的磁盤陣列加一個熱備盤(/dev/vdb4為熱備盤)。

 [root@controller ~]# openstack volume create --size 40 1    #1是卷名字
         [root@controller ~]# openstack server add volume test 1   #tet云主機名字
         
         [root@test ~]# mdadm -Cv /dev/md5 -l 5 -n 3 /dev/vdb1 /dev/vdb2 /dev/vdb3 -x 1 /dev/vdb4
         [root@test ~]# mdadm -D /dev/md5   #mdadm -D:功能 (顯示RAID組詳細信息)
         
         mdadm -S /dev/md5 #停止陣列
 /dev/md5:
            Version : 1.2
      Creation Time : Mon Aug 16 12:21:50 2025
         Raid Level : raid5
         Array Size : 10475520 (9.99 GiB 10.73 GB)
      Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
       Raid Devices : 3
      Total Devices : 4
        Persistence : Superblock is persistent
 ?
        Update Time : Mon Aug 16 12:21:58 2021
              State : clean, degraded, recovering 
     Active Devices : 2
    Working Devices : 4
     Failed Devices : 0
      Spare Devices : 2
 ?
             Layout : left-symmetric
         Chunk Size : 512K
 ?
 Consistency Policy : resync
 ?
     Rebuild Status : 8% complete
 ?
               Name : test.novalocal:5  (local to host test.novalocal)
               UUID : 3238632c:7ab29c46:abb35387:c00bbaf5
             Events : 2
 ?
     Number   Major   Minor   RaidDevice State
        0     253       17        0      active sync   /dev/vdb1
        1     253       18        1      active sync   /dev/vdb2
        4     253       19        2      spare rebuilding   /dev/vdb3
 ?
        3     253       20        -      spare   /dev/vdb4
 ?

2.Raid使用場景

RAID5是一種存儲性能、數據安全和存儲成本兼顧的解決方案,RAID5需要3塊或者以上的物理磁盤,可以提供熱備盤顯現故障的恢復;采用奇偶校驗,可靠性強,且只有損壞兩塊硬盤時數據才會完全損壞,只損壞一塊盤時,系統會根據存儲的奇偶校驗位重建數據,臨時提供服務,此時如果有熱備盤,系統還會自動在熱備盤重建故障磁盤上的數據

     RAID5使用的場景:
RAID5可以理解為RAID0和RAID5的折中方案。適合對性能和冗余都有一定的要求,又不是十分高的情況,比如MySQL的主從庫、存儲等。普通服務器為了減少維護成本,又保持一定冗余和讀性能都可以做RAID5.
    
    -C     ##建立
    -a    ##文件不存在建立文件
    -l    ##raid級別
    -n    ##設備個數
    -x    ##閑置設備個數
    
LVM管理:
lvm     邏輯卷,可以讓設備自由伸縮的一個設備管理軟件
pv     物理卷
vg      物理卷組
pe      物理拓展,lvm最小的存儲單元

***********************************************************************************
創建volume卷時報錯error解決:
運行一些增加卷的命令到實例中去,會報錯,說volume的狀態是error,不能操作。

我們首先進入mysql數據庫,選擇cinder數據庫,更改表volume。操作如下:

MariaDB [(none)]> use cinder;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
MariaDB [cinder]> show tables;
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+
35 rows in set (0.00 sec)
更新volumes表

MariaDB [cinder]> UPDATE volumes SET status= 'available' WHERE status = 'error';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0 查看卷的狀態,變成available了。
 

4.heat模板管理

heat_template_version : 必須,指定模板語法的版本,除了可以指定日期的格式,還可以直接指定 openstack 的版本, 如 rocky description : 可選,描述信息 parameter_groups : 可選,指明輸入參數該如何分組以及參數傳入的順序 parameters : 可選, 定義輸入參數 resources : 必須,定義模板資源 outputs : 可選,定義輸出參數 conditions : 可選,用來控制一個資源什么情況下可以被創建

模板解釋:

  • heat_template_version 在網頁路徑“項目-編排-模板版本”中選一個日期作為值

  • resources-type 在網頁路徑“項目-編排-資源類型”中選擇和題意相符的類型

  • resources-具體參數 在在網頁路徑“項目-編排-資源類型”中點進具體的type中的下面一塊屬性中有參數以及類型

  • outputs-value 在在網頁路徑“項目-編排-資源類型”中點進具體的type中的上面一塊屬性中有參數以及類型,為選填類型


4.1.heat創建用戶

在自行搭建的 OpenStack 私有云平臺或賽項提供的 all-in-one 平臺上,在/root 目錄下編寫 Heat 模板 create_user.yaml,創建名為 heat-user 的用戶,屬于 admin 項目,并賦予 heat-user用戶 admin 的權限,配置用戶密碼為 123456。

 [root@controller ~]#iaas-install-heat.sh
 ?
 [root@controller ~]# cat create_user.yaml 
 heat_template_version: 2014-10-16
 resources:
   user:
     type: OS::Keystone::User
     properties:
       name: heat-user
       password: "123456"
       domain: demo
       default_project: admin
       roles: [{"role": admin, "project": admin}]
       
       
 [root@controller ~]#openstack stack create -t user_create.yaml heat_user1
       

4.2.heat創建flavor類型

在openstack私有云平臺上,在/root目錄下編寫模板server.yaml,創建名為“m1.flavor”、 ID 為 1234、內存為1024MB、硬盤為20GB、vcpu數量為 1的云主機類型。

 [root@controller ~]# cat server.yaml 
 heat_template_version: 2014-10-16    #heat_template_version
 resources:     #資源:
   nova_flavor:  
     type: OS::Nova::Flavor  #
     properties:   #屬性:##類型
       name: m1.flavor
       disk: 20
       is_public: True   #設置共享,默認的
       ram: 1024
       vcpus: 1
       flavorid: 1234  
 [root@controller ~]# openstack stack create -t server.yaml test   
 [root@controller ~]# openstack flavor list
 +------+-----------+------+------+-----------+-------+-----------+
 | ID   | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
 +------+-----------+------+------+-----------+-------+-----------

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93477.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93477.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea代碼bug檢測插件

代碼檢測工具(插件)推薦:Alibaba Java Coding Guidelines、CheckStyle、PMD、FindBugs、SonarLint。可以在idea中安裝插件 讓你在關注代碼質量的同時,減少 code review 的工作量,提高 code review 的效率,…

Java String為什么要設計成不可變的?

大家好,我是鋒哥。今天分享關于【Java String為什么要設計成不可變的?】面試題。希望對大家有幫助; Java String為什么要設計成不可變的? 超硬核AI學習資料,現在永久免費了! Java中的String類被設計為不可變(immut…

集成電路學習:什么是ORB方向性FAST和旋轉BRIEF

ORB:方向性FAST和旋轉BRIEF ORB(Oriented FAST and Rotated BRIEF)是一種在計算機視覺領域廣泛應用的特征描述算法,它結合了FAST角點檢測算法和BRIEF描述子算法的優點,以實現高效且具有旋轉不變性的特征提取和匹配。以下是關于ORB算法的詳細解析: 一、ORB算法概述 …

【langgraph基礎入門】

1. LangGraph圖結構概念說明在以圖構建的框架中,任何可執行的功能都可以作為對話、代理或程序的啟動點。這個啟動點可以是大模型的 API 接口、基于大模型構建的 AI Agent,通過 LangChain 或其他技術建立的線性序列等等,即下圖中的 “Start” …

[逆向知識] AST抽象語法樹:混淆與反混淆的邏輯互換(一)

博客配套代碼發布于github:半自動化cookie更新(歡迎順手Star一下?) 相關逆向知識: [逆向知識] AST抽象語法樹:混淆與反混淆的邏輯互換(二)-CSDN博客 相關爬蟲專欄:JS逆向爬蟲實戰…

網絡安全合規6--服務器安全檢測和防御技術

一、服務器安全風險主要威脅:不必要的服務暴露(如僅需HTTP卻開放多余端口)。外網掃描(IP/端口掃描)、DDoS攻擊。系統漏洞攻擊(操作系統、軟件版本已知漏洞)。Web攻擊(SQL注入、XSS、…

Mutually aided uncertainty

cycle loss calculation in order to regularize the two aux-decoders 輔助信息 作者未提供代碼

go基礎學習筆記

思維導圖變量 聲明形式為var 變量名 變量類型 賦值形式為變量名變量值 聲明和賦值同時形式為變量名:變量值 多個變量同時聲明使用形式為 var (x intb bool )當有多個變量類型一樣時,可以放在一行,形式為var x,y int,當類型一樣,并且需要賦值同…

C++析構函數和線程退出1

線程作為程序在操作系統中的執行單元,它是活動對象,有生命周期狀態,它是有始有終的。有啟動就有結束,在上篇文章中討論了線程作為數據成員啟動時的順序問題,如何避免構造函數在初始化對象時對線程啟動的負面影響&#…

【語法】JSON格式與基礎語法

文章目錄JSON 簡介JSON 語法規則JSON 名稱/值對JSON 值類型JSON文件存儲JSON示例數據示例Python解析JSON代碼JSON 簡介 JSON 語法是 JavaScript 語法的子集。JSON 是存儲和交換文本信息的語法。JSON: JavaScript Object Notation(JavaScript 對象表示法)。 JSON 語法規則 數…

GitHub 熱榜項目 - 日榜(2025-08-16)

GitHub 熱榜項目 - 日榜(2025-08-16) 生成于:2025-08-16 統計摘要 共發現熱門項目:13 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點:1) AI應用深入垂直領域,SpatialLM將大語言模型應用于空間…

什么是EDA(Exploratory Data Analysis,探索性數據分析)

EDA(Exploratory Data Analysis,探索性數據分析)是一種在正式建模前,通過統計量和可視化方法來理解數據特征、發現模式與異常、并提出假設的過程。 這張圖里你會看到: 直方圖:展示單變量的分布,…

計算機畢業設計java的小天鵝酒店月子會所管理小天鵝酒店母嬰護理中心管理系統設計小天鵝酒店產后護理會所信息化管理平臺

計算機畢業設計java的小天鵝酒店月子會所管理9zl079(配套有源碼 程序 mysql數據庫 論文) 本套源碼可以在文本聯xi,先看具體系統功能演示視頻領取,可分享源碼參考。在當今數字化時代,隨著人們對產后護理需求的不斷增加,…

Docker-14.項目部署-DockerCompose

一.DockerCompose大家可以看到,我們部署一個簡單的java項目,其中包含3個容器:MySQLNginxJava項目而稍微復雜的項目,其中還會有各種各樣的其它中間件,需要部署的東西遠不止3個。如果還像之前那樣手動的逐一部署&#xf…

Vue組件基礎解析

一、組件的核心意義 組件是Vue中實現UI復用與邏輯封裝的基礎單元,能將復雜UI拆分為獨立、可重用的部分,最終組織成嵌套的樹狀結構(類似HTML元素嵌套)。Vue組件模型支持自定義內容與邏輯封裝,也能兼容原生Web Component。 二、組件的定義方式 根據是否使用構建步驟,Vue…

第5問 對于數據分析領域,統計學要學到什么程度?

1. ?統計學在數據分析中的定位??核心作用?:統計學是數據分析的底層方法論,涵蓋數據描述、推斷預測和模型構建。?兩大分支?:?描述統計?(EDA階段):數據清洗、特征工程的基礎(如均值/分布/…

[go] 橋接模式

橋接模式 是一種結構型設計模式, 可將一個大類或一系列緊密相關的類拆分為抽象和實現兩個獨立的層次結構, 從而能在開發時分別使用。 模型說明抽象部分(Abstraction)提供高層控制邏輯,依賴于完成底層實際工作的實現對象…

GitHub的使用教程

第一章:準備工作 1.1:安裝Git并設置你的GitHub賬戶 1.1.1:注冊 GitHub 賬號: 訪問 https://github.com/ 并注冊一個新賬號。 可以使用qq郵箱進行注冊 輸入郵箱后點擊sign up for GitHub,設置密碼后進行注冊,輸入驗…

Day56 Java面向對象10 方法重寫

Day56 Java面向對象10 方法重寫 1.為什么要方法重寫 當子類不需要父類方法的全部內容 或 父類的方法無法滿足子類的需求時,就需要在子類重寫父類的方法 2.如何方法重寫 重寫必須發生在繼承關系中,只能是子類重寫父類子類重寫的方法名必須和父類方法一致,方法體可以不同子類重寫…

【C++】標準庫中用于組合多個值的數據結構pair、tuple、array...

在 C 標準庫中,有多種數據結構可用于組合多個值,每種結構都有其特定的設計目的和適用場景。以下是主要組合數據結構的分類解析: 一、核心組合數據結構 1. std::pair (C98) 用途:存儲兩個相關值(鍵值對、坐標點等&#…