<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>软院云平台文档</title><link>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/</link><description>Recent content on 软院云平台文档</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/index.xml" rel="self" type="application/rss+xml"/><item><title>Lab01 RAID 阵列</title><link>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/raid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/raid/</guid><description>Lab01 RAID阵列 # 本指导书是实验过程的一个示例，供不熟悉实验环境的同学参考，无需严格按照指导书中的步骤来进行实验 :)
实验内容 # 本实验通过软件 RAID 管理磁盘：
通过工具查看磁盘列表 使用LVM扩展根目录/的容量 创建RAID阵列，测试读写文件并模拟磁盘损坏，观察有什么情况发生，数据是否损坏或者丢失？ 尝试RAID 0 尝试RAID 1 尝试RAID 5 思考题： 为什么及在什么条件下选择用 RAID RAID &amp;amp; 分布式存储 &amp;amp; 集中存储的区别 请将实验报告按 lab01-学号-姓名.pdf 的命名格式提交
实验准备 # Windows下连接Ubuntu虚拟机 # 一般来讲，Windows 10（及以上）自带的cmd.exe都自带ssh client，打开cmd后直接ssh foo@x.x.x.x即可登录
为了更好的使用体验，你也可以使用 MobaXterm 或者 termius 等进行多个ssh连接的管理
MacOS下连接Ubuntu虚拟机 # 使用系统自带的Terminal.app登录即可
为了更好的使用体验，推荐使用 iterm2 登录
当然，你也可以使用 termius 进行多个ssh连接的管理
Ubuntu虚拟机联网 # 虚拟机已内置联网登录工具
buaalogin config buaalogin login 重要提醒 # 请登录实验虚拟机后，及时更改虚拟机密码，以避免以下情况发生：
未意识到登录了他人的虚拟机， 帮助别人完成了实验工作 自己的虚拟机被别人登录，已经做完的实验被破坏 实验过程参考 # 实验全程在root权限下进行
sudo -i 使用LVM为根目录扩容 # 查看虚拟机上的磁盘列表，其中有sdb~sdf共五块磁盘可以供本次实验使用，sda是系统所在的磁盘，容量为20GB</description></item><item><title>Lab02/Lab03 虚拟化实验</title><link>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/virtualization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/virtualization/</guid><description>Lab02/Lab03 虚拟化实验 # 实验目标 # 实施计算虚拟化，安装配置环境，熟悉计算虚拟化的概念，理解基本操作，掌握基础知识。 理解集中管理对于虚拟化的作用，通过部署集中 vCenter 体验集群的设置，分布式交换机的设置，了解主机从不同网络进行迁移的实际需求。 实验内容 # 参考实验指导书完成实验。 按照实验报告模板，撰写实验报告，填入截图，回答相应问题。 本次实验以小组形式进行，虚拟机已分发至每组第一位同学的账户中，每组一台虚拟机，实验报告由每组一位同学提交即可。
请在云平台作业提交截止时间之前，将作业提交到云平台，命名为：lab02-组号.pdf的格式。
供参考的分工方式：
组员 A 负责搭建 2 台 ESXi 主机，完成思考题1、2 组员 B 负责新建 CentOS，完成任务1和思考题3、4 组员 C 负责安装 vCenter，完成任务2 知识回顾 # 我们知道，一台计算机一般有以下的结构：
操作系统负责管理硬件资源（CPU，内存，硬盘等），并向上提供相应的系统调用，供具体的应用程序使用。
而我们平常提到的操作系统的虚拟化，本质上就是要模拟出一套硬件（包括虚拟 CPU，虚拟内存，虚拟硬盘等），然后在这一套虚拟的硬件的基础上部署客户操作系统。客户操作系统完全不需要做任何修改，即可在这个“虚拟的机器”中顺利执行。但客户操作系统的运行结果（比如接收键盘输入，输出图像和声音等），最终都是要靠原始的“实实在在”的硬件（物理机）来完成的。
也就是说，需要有那么一个结构，能够将这个“虚拟的机器”的行为翻译到物理机的行为（比如将虚拟 CPU 的指令翻译到物理机的 CPU 指令）。负责做这件事情的结构被称为 Hypervisor，又称为虚拟机监控器（virtual machine monitor，缩写为 VMM）。
根据工作方式的不同，Hypervisor分为以下两种。
第一种是我们比较熟悉的情况，本质上就是在主操作系统（Host Operating System）上安装了一个虚拟化软件，它来负责充当虚拟机的管理者，并通过主操作系统的系统调用来完成对物理机硬件的使用。VMware Workstation、Virtual Box、Qemu 等都属这类虚拟化软件。除了这个虚拟化软件之外，主操作系统上还会运行其他“正常”的应用程序，比如，你在用 VMware Workstation 的同时还能听歌聊天等。
第二种 Hypervisor 则直接舍弃了主操作系统（因为毕竟隔着一层，性能会有损失），而是直接把 Hypervisor 部署在硬件上。在这种情况下，物理机变成了更纯粹的“为虚拟化而生”的机器。 Hypervisor 能够直接与硬件沟通，其实在某种程度上也承担了主操作系统的角色（管理硬件），因此，我们也可以把这种 Hypervisor 看作是一种为虚拟化特制的操作系统。这其中典型的就是 VMware ESXi。
因为我们不可能要求每位同学都制备一套硬件来安装学习 VMware ESXi，所以需要首先使用 VMware Workstation 来模拟出一套硬件。但 VMware Workstation 仅仅起一个前置作用，在实际的实验中并不会涉及到。请大家首先理清这层关系。</description></item><item><title>Lab04 Ceph存储集群实践</title><link>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/ceph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://scs.buaa.edu.cn/doc/ns-labs/table-of-contents/ceph/</guid><description>Lab04 Ceph 存储集群实践 # 实验目的 # 了解 Ceph 存储的基本工作原理 建立对分布式存储的初步认识 实验说明 # 按照实验指南的指导，完成实验。 按照实验报告模板，撰写实验报告，将重要的实验步骤截图，填入实验报告中，并回答相应问题。 本次实验以小组形式进行，虚拟机已分发至每位同学的账户中，每组三台虚拟机，实验报告所有同学都需要提交。
请在云平台作业提交截止时间之前，将作业提交到云平台，命名为：lab04-组号.pdf的格式。
建议每组同学共同完成本次实验。
实验中遇到的困难请及时在课程微信群中抛出。 除本指导书外，实验的主要的参考资料还包括： Ceph 官方文档、 Ceph 部署指南、互联网上的技术博客等。
概述 # Ceph(读音 /ˈsɛf/) 是一个分布式的存储集群。什么是分布式存储？我们为什么需要它？
试想，你在搭建了一个网站对外提供服务。用户在使用网站的过程中会存储大量的数据，网站运行过程中也会产生大量的日志信息。
最初，你将网站部署在一个装有 500G 硬盘的服务器上。随着时间的流逝，500G 的硬盘逐渐被填满。现在你有两种选择。
纵向拓展。在服务器上加装硬盘，甚至你可以使用 LVM 将硬盘无缝拓展到原来的文件系统中，上层应用和用户根本看不出来有任何差别。但随着数据量的进一步积累，加装的硬盘还会被填满。即使你将服务器的硬盘槽位都插满，最终还是无法解决数据量逐渐增大的问题。数据是无限的，一台机器能承受的数据量总是有限的，氪金也无法解决这个问题。 横向拓展。买一台新的服务器，用网线把它和原来的服务器连起来，把原来的服务器存不下的数据存储到这台新的服务器上。当需要使用到这些数据时，再从新的服务器上取出来。当第二台服务器被填满后，再添加新的服务器。 第二种看起来是最可行的方法：随着业务的扩展，继续加机器就可以了。这种由多台网络互通的机器组成的存储系统即可被理解为“分布式存储系统”。
但随着机器数量的增加，整个系统的复杂度也在上升。新的多机器系统会表现出与原来的单机系统很多不同的特性，会带来更多的问题，比如：
如何划分数据？也就是说，如何决定网站接收的某份数据该存储到哪台机器上？每台机器的存储容量可能不同，存储性能也可能不同，如何平衡每台机器的存储容量？ 如何获取数据？我们将数据保存在不同的机器上时，通常保存的不是一个完整的文件，而是经过一个个切分后的数据块，每个数据块可能保存在不同的机器上。当获取数据时，我们需要知道要获取的文件包含哪些数据块，每个数据块存放在哪台机器的哪个位置。随着机器数量和数据量的增加，这不是一个简单的任务。 随着机器数量的增加，系统发生故障的概率也在增加。仅对硬盘而言，我们假设每块硬盘在一年中发生故障的概率是 1%，对于普通消费者而言，这似乎不是什么问题，这种故障可能在硬盘的整个使用周期内都不会发生；但对于一个包含几百块硬盘的存储系统来说，这意味着几乎每天都会有若干块硬盘发生故障，而每块硬盘的故障都有可能造成系统的宕机和数据损失。因此，分布式存储系统必须有较强的容错能力，能够在一定数量的机器崩溃时，仍能对外提供服务。 …… 上面这些问题，正是 Ceph 这类分布式存储系统所要解决的问题。简单来说，Ceph 是一个能将大量廉价的存储设备统一组织起来，并对外提供统一的服务接口的，提供分布式、横向拓展、高度可靠性的存储系统。
对分布式系统感兴趣的同学，可以趁下学期或大四空闲的时候听一下 MIT 6.824的课程，并尽量完成它的全部实验。
在互联网上搜索“MIT 6.824”能得到大量的资料，比如，B 站上有 翻译好的熟肉。
除此之外，Ceph 的独特之处还在于，它在一个存储系统上，对外提供了三种类型的访问接口：
文件存储。简单来说，你可以将 Ceph 的存储池抽象为一个文件系统，并挂载到某个目录上，然后像读写本地文件一样，在这个新的目录上创建、读写、删除文件。并且该文件系统可以同时被多台机器同时挂载，并被同时读写。从而实现多台机器间的存储共享。 对象存储。Ceph 提供了对象存储网关，并同时提供了 S3 和 Swift 风格的 API 接口。你可以使用这些接口上传和下载文件。 块存储。Ceph 还能提供块存储的抽象。即客户端（集群外的机器）通过块存储接口访问的“所有数据按照固定的大小分块，每一块赋予一个用于寻址的编号。”客户端可以像使用硬盘这种块设备一样，使用这些块存储的接口进行数据的读写。（一般这种块设备的读写都是由操作系统代劳的。操作系统会对块设备进行分区等操作，并在其上部署文件系统，应用程序和用户看到直接看到的是文件系统的接口（也就是文件存储））。 需要注意的是，虽然 Ceph 对外提供了上面这三种不同类型的存储接口，但其底层会使用相同的逻辑对接收的数据进行分块和存储。</description></item></channel></rss>