CN113254091B - 一种基于ceph块设备的无盘系统启动方法 - Google Patents

一种基于ceph块设备的无盘系统启动方法 Download PDF

Info

Publication number
CN113254091B
CN113254091B CN202110639686.9A CN202110639686A CN113254091B CN 113254091 B CN113254091 B CN 113254091B CN 202110639686 A CN202110639686 A CN 202110639686A CN 113254091 B CN113254091 B CN 113254091B
Authority
CN
China
Prior art keywords
rbd
operating system
disk
bios
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110639686.9A
Other languages
English (en)
Other versions
CN113254091A (zh
Inventor
杨伟鹏
霍健聪
韩帆
陈美任
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Eflycloud Computing Co Ltd
Original Assignee
Guangdong Eflycloud Computing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Eflycloud Computing Co Ltd filed Critical Guangdong Eflycloud Computing Co Ltd
Priority to CN202110639686.9A priority Critical patent/CN113254091B/zh
Publication of CN113254091A publication Critical patent/CN113254091A/zh
Application granted granted Critical
Publication of CN113254091B publication Critical patent/CN113254091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

本发明公开了一种基于ceph块设备的无盘系统启动方法,步骤包括:主板BIOS接收进行网络启动操作系统指令,从TFTP服务器上下载PXE固件,PXE固件获取ceph集群服务器的RBD磁盘的分区信息以及获取所需启动的操作系统所在的RBD磁盘分区,主板BIOS创建虚拟磁盘,PXE固件将操作系统读写至虚拟磁盘,在虚拟磁盘上运行操作系统。通过结合ceph集群的RBD磁盘技术,本发明提升了无盘系统使用的稳定性。

Description

一种基于ceph块设备的无盘系统启动方法
技术领域
本发明涉及计算机系统启动技术领域,特别涉及一种基于ceph块设备的无盘系统启动方法。
背景技术
ceph是一款开源的分布式存储系统,对外提供块服务、文件系统服务和对象存储服务,在市场上广泛应用。计算机使用网络指定服务器下载启动镜像的方式称为无盘系统,无盘系统解决了数据隐私安全、储存设备价格昂贵的问题,是一种具有泛用性的超融合实施方案。
目前业界上使用的无盘系统方案是在计算机主板上连通网络后,通过tftp下载PXE工具,在PXE固件中挂载iSCSI磁盘引导内核启动,最后再加载内核,使用iSCSI网络连接的方法读写磁盘。
然而,iSCSI磁盘在网络质量不佳的情况下容易发生不稳定情况,并且对大并发IO读写时容易造成iSCSI磁盘挂载丢失。
发明内容
本发明为了解决上述问题之一,提供一种基于ceph块设备的无盘系统启动方法,避免了因网络连接不佳从而造成磁盘挂载失败的情况发生。
为解决上述技术问题,本发明提供如下技术方案:一种基于ceph块设备的无盘系统启动方法,包括以下步骤:
步骤S1、计算机的主板BIOS被启动后,主板BIOS接收启动操作系统的指令,并判断指令是进行网络启动操作系统还是进行本地硬盘启动操作系统;
若指令为进行网络启动操作系统,则进行下一步;若指令为进行本地硬盘启动操作系统,则主板BIOS在本地硬盘上启动操作系统;
步骤S2、主板BIOS网络连接TFTP服务器,并从TFTP服务器上下载PXE固件;
步骤S3、主板BIOS运行PXE固件,PXE固件连接ceph集群服务器;
步骤S4、PXE固件获取ceph集群服务器的RBD磁盘的分区信息,以及获取所需启动的操作系统所在的RBD磁盘分区;其中,将操作系统所在的RBD磁盘分区称为启动区;PXE固件计算操作系统在启动区上所占用的空间以及具体数据内容;
步骤S5、计算机的主板BIOS将所述计算机的内存划分一定空间并生成虚拟磁盘;
步骤S6、PXE固件将操作系统的具体数据内容读写至虚拟磁盘;
步骤S7、主板BIOS在虚拟磁盘上运行操作系统。
进一步地,所述步骤S5中,所述主板BIOS预先安装ramdisk固件,ramdisk固件将所述计算机的内存划分一定空间并生成虚拟磁盘;
进一步地,所述操作系统为linux系统。
进一步地,所述的一种基于ceph块设备的无盘系统启动方法,还包括步骤S8:
主板BIOS在虚拟磁盘上运行linux系统,并加载rbd代理模块以及krbd驱动模块;所述rbd代理模块以及krbd驱动模块预先安装于linux系统中;
在运行linux系统过程中,ceph集群服务器需要读取数据时,rbd代理模块读取RBD磁盘的数据并转发至krbd驱动模块;krbd驱动模块再将数据发送给ceph集群服务器;当ceph集群服务器写入数据时,将数据发送给krbd驱动模块,krbd驱动模块再将数据转发给rbd代理模块,rbd代理模块将数据写入RBD磁盘中。
采用上述技术方案后,本发明至少具有如下有益效果:本发明通过结合ceph集群的RBD磁盘技术,提升了无盘系统使用的稳定性;另外,采用rbd代理模块进行数据的转发,减少了krbd驱动模块在无盘系统中对系统用户态的影响,且rbd代理模块承接所有krbd驱动模块对用户层面的操作,若需要修改配置只需安装新的rbd代理模块即可,rbd代理模块具有qos服务质量规则功能,可设置一个数量参数,当返回IO失败超过该参数后,增大IO 返回结果的超时时间。
附图说明
图1为本发明一种基于ceph块设备的无盘系统启动方法步骤流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
实施例1
本实施例提供了一种基于ceph块设备的无盘系统启动方法,如图1所示,包括以下步骤:
步骤S1、计算机的主板BIOS被启动后,主板BIOS接收启动操作系统的指令,并判断指令是进行网络启动操作系统还是进行本地硬盘启动操作系统;
若指令为进行网络启动操作系统,则进行下一步;若指令为进行本地硬盘启动操作系统,则主板BIOS在本地硬盘上启动操作系统;
步骤S2、主板BIOS网络连接TFTP服务器,并从TFTP服务器上下载PXE固件;本实施例优先选择linux系统作为所需要启动的操作系统;
步骤S3、主板BIOS运行PXE固件,PXE固件连接ceph集群服务器;其中,PXE固件使用libconf库解析配置文件中的内容,读取ceph集群的IP地址并与其建立连接;
步骤S4、PXE固件获取ceph集群服务器的RBD磁盘的分区信息,以及获取所需启动的操作系统所在的RBD磁盘分区;其中,将操作系统所在的RBD磁盘分区称为启动区;PXE固件计算操作系统在启动区上所占用的空间以及具体数据内容;
此过程中,PXE固件读取RBD磁盘前512个字节的GPT分区,从而获得整个RBD磁盘的分区表信息;使用Linux系统内核所在分区的起始扇区号与结束扇区号之差,计算得出扇区数量,从而得出GPT分区与linux内核分区容量大小(所占用的空间,根据所占用的空间即可得到Linux系统的数据大小或者说具体数据内容);
步骤S5、主板BIOS创建虚磁盘:计算机的主板BIOS将所述计算机的内存划分一定空间并生成虚拟磁盘;这里的计算机的内存指代的是计算机上内存条(RAM)的内存;
具体的,所述主板BIOS预先安装ramdisk固件,通过ramdisk固件将所述计算机的内存划分一定空间并生成虚拟磁盘;
步骤S6、PXE固件将操作系统的具体数据内容读写至虚拟磁盘;
步骤S7、主板BIOS在虚拟磁盘上运行操作系统;
步骤S8:主板BIOS在虚拟磁盘上运行linux系统,并加载rbd代理模块以及krbd驱动模块;所述rbd代理模块以及krbd驱动模块预先安装于linux系统中;
在运行linux系统过程中,ceph集群服务器需要读取数据时,rbd代理模块读取RBD磁盘的数据并转发至krbd驱动模块;krbd驱动模块再将数据发送给ceph集群服务器;当ceph集群服务器写入数据时,将数据发送给krbd驱动模块,krbd驱动模块再将数据转发给rbd代理模块,rbd代理模块将数据写入RBD磁盘中。
步骤S8中,rbd代理模块以驱动程序的形式,编译进linux系统内部。当内核加载完成之后,会执行init初始化脚本加载各种驱动当中包括“rbd代理模块”以及krbd驱动模块。
原有的krbd驱动模块是ceph集群服务器的工具,其存在以下缺陷:a) krbd驱动模块需要在用户层读取ceph的配置文件,此时linux系统未完成用户层的初始化;b) krbd驱动模块缺少qos功能,无法区分不同io负载的场景;
本实施例增加“rbd代理模块”充当linux系统与krbd驱动模块的中间层。所述rbd代理模块主要负责3个方面:a) 在内核初始化完成后注册成一个块设备,linux远程读取rbd磁盘数据,挂载根目录文件;b) krbd驱动模块是ceph集群在linux系统内核上的客户端连接工具,利用bus总线读取用户态文件系统上的配置文件并为其提供接口,在无盘系统中为了减少krbd驱动模块对系统用户态的影响,rbd代理模块承接所有krbd驱动模块对用户层面的操作,若需要修改配置只需安装新的rbd代理模块即可;c) rbd代理模块把所有磁盘操作IO转发至krbd驱动模块;d) rbd代理模块具有qos服务质量规则功能,可设置一个数量参数,当返回IO失败超过该参数后,增大IO 返回结果的超时时间。
本实施例一种基于ceph块设备的无盘系统启动方法,避免了因网络连接不佳从而造成磁盘挂载失败的情况发生提升了无盘系统使用的稳定性。
上述中,PXE指的是预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
GPT 指的是全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。
iSCSI 指的是Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术。
krbd(kernel rbd):这是ceph 块设备直接对接到linux 系统的场景。也就是说,在linux kernel当中提供了一个块设备的driver,直接对ceph server端进行数据IO。
Ramdisk 软件的主要功能是通过独特的软件算法将物理内存模拟成一个超快速的硬盘,在这个虚拟硬盘上的读写操作均在内存中完成。由于物理内存的访问速度远远超过物理硬盘,因此虚拟硬盘具有非常高的数据读写速度,从而突破系统IO瓶颈,飞速提升计算机性能。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

Claims (2)

1.一种基于ceph块设备的无盘系统启动方法,其特征在于,包括以下步骤:
步骤S1、计算机的主板BIOS被启动后,主板BIOS接收启动操作系统的指令,并判断指令是进行网络启动操作系统还是进行本地硬盘启动操作系统;所述操作系统为linux系统;
若指令为进行网络启动操作系统,则进行下一步;若指令为进行本地硬盘启动操作系统,则主板BIOS在本地硬盘上启动操作系统;
步骤S2、主板BIOS网络连接TFTP服务器,并从TFTP服务器上下载PXE固件;
步骤S3、主板BIOS运行PXE固件,PXE固件连接ceph集群服务器;
步骤S4、PXE固件获取ceph集群服务器的RBD磁盘的分区信息,以及获取所需启动的操作系统所在的RBD磁盘分区;其中,将操作系统所在的RBD磁盘分区称为启动区;PXE固件计算操作系统在启动区上所占用的空间以及具体数据内容;
步骤S5、计算机的主板BIOS将所述计算机的内存划分一定空间并生成虚拟磁盘;
步骤S6、PXE固件将操作系统的具体数据内容读写至虚拟磁盘;
步骤S7、主板BIOS在虚拟磁盘上运行操作系统;
步骤S8:主板BIOS在虚拟磁盘上运行linux系统,并加载rbd代理模块以及krbd驱动模块;所述rbd代理模块以及krbd驱动模块预先安装于linux系统中;
在运行linux系统过程中,ceph集群服务器需要读取数据时,rbd代理模块读取RBD磁盘的数据并转发至krbd驱动模块;krbd驱动模块再将数据发送给ceph集群服务器;当ceph集群服务器写入数据时,将数据发送给krbd驱动模块,krbd驱动模块再将数据转发给rbd代理模块,rbd代理模块将数据写入RBD磁盘中。
2.根据权利要求1所述的一种基于ceph块设备的无盘系统启动方法,其特征在于,所述步骤S5中,所述主板BIOS预先安装ramdisk固件,ramdisk固件将所述计算机的内存划分一定空间并生成虚拟磁盘。
CN202110639686.9A 2021-06-09 2021-06-09 一种基于ceph块设备的无盘系统启动方法 Active CN113254091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110639686.9A CN113254091B (zh) 2021-06-09 2021-06-09 一种基于ceph块设备的无盘系统启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110639686.9A CN113254091B (zh) 2021-06-09 2021-06-09 一种基于ceph块设备的无盘系统启动方法

Publications (2)

Publication Number Publication Date
CN113254091A CN113254091A (zh) 2021-08-13
CN113254091B true CN113254091B (zh) 2021-11-02

Family

ID=77187145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110639686.9A Active CN113254091B (zh) 2021-06-09 2021-06-09 一种基于ceph块设备的无盘系统启动方法

Country Status (1)

Country Link
CN (1) CN113254091B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237724B (zh) * 2021-11-24 2024-03-12 珠海全视通信息技术有限公司 驱动动态加载方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572172A (zh) * 2013-10-24 2015-04-29 国际商业机器公司 加载无盘计算节点的操作系统的方法和装置
CN106527985A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种基于ceph的存储交互装置及存储系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447723B (zh) * 2010-10-12 2015-09-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US10372463B1 (en) * 2013-11-27 2019-08-06 EMC IP Holding Company LLC Provisioning a computerized device with an operating system
CN105007290B (zh) * 2015-05-21 2018-03-20 上海新浩艺软件有限公司 一种针对无盘服务器的Linux系统远程安装配置管理方法
CN105426207A (zh) * 2015-11-13 2016-03-23 浪潮电子信息产业股份有限公司 一种基于pxe的快速批量安装操作系统的方法
CN109085996A (zh) * 2017-06-14 2018-12-25 中国移动通信集团重庆有限公司 弹性块存储数据的方法、装置、系统和存储介质
CN110737479A (zh) * 2019-09-04 2020-01-31 平安科技(深圳)有限公司 一种无盘启动操作系统的方法、服务器和可读存储介质
CN111221792B (zh) * 2019-12-27 2024-01-19 广东睿江云计算股份有限公司 一种基于ceph的rbd文件传输方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572172A (zh) * 2013-10-24 2015-04-29 国际商业机器公司 加载无盘计算节点的操作系统的方法和装置
CN106527985A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种基于ceph的存储交互装置及存储系统

Also Published As

Publication number Publication date
CN113254091A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
US7624262B2 (en) Apparatus, system, and method for booting using an external disk through a virtual SCSI connection
US6874060B2 (en) Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive
US10133504B2 (en) Dynamic partitioning of processing hardware
US20070174033A1 (en) Remote control device and method for accessing peripheral device remotely
US9971509B2 (en) System and method for managing space allocation within a file system
US20220214945A1 (en) System Booting Method and Apparatus, Node Device, and Computer-Readable Storage Medium
US10346065B2 (en) Method for performing hot-swap of a storage device in a virtualization environment
US11709692B2 (en) Hot growing a cloud hosted block device
CN107203480B (zh) 一种数据预取方法以及装置
CN105068836A (zh) 一种基于sas网络的远程可共享的启动系统
US7234053B1 (en) Methods for expansive netboot
CN113254091B (zh) 一种基于ceph块设备的无盘系统启动方法
CN115562734A (zh) 一种数据处理器配置方法、装置、设备及介质
CN108228108B (zh) 一种差分虚拟磁盘链接方法
CN1834912A (zh) 用于可扩展互联网引擎的iSCSI引导驱动系统及方法
CN112015352B (zh) 存储块设备识别装置、系统和存储块设备读写方法
US10776145B2 (en) Systems and methods for traffic monitoring in a virtualized software defined storage architecture
US11256519B2 (en) Using a single process to install a UEFI-supported OS or a non-UEFI supported OS on a hardware platform
US20040243385A1 (en) Emulation of hardware devices in a pre-boot environment
CN116069400A (zh) 一种VOI架构下启动Linux操作系统的方法及终端
US20040010680A1 (en) Method and apparatus for configuration of RAID controllers
JP6745405B2 (ja) ストレージシステム及びマッピング方法
CN111930707B (zh) 一种windows云迁移的盘符修正方法及系统
CN113722147A (zh) 一种保持业务连接方法及相关设备
CN116661946A (zh) 通过Windows驱动优化VDI磁盘读写的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant