在虚拟机中使用 GPU 计算

本文介绍如何在 Linux 虚拟机中直接使用 GPU 做科学计算,要达到这个目的,需要满足下面几个条件: 物理主机使用 VMWare ESXi 作为虚拟化的 VMM,并且版本最好大于等于 6.5 使用的是 Nvidia GPU 的显卡 Linux 虚拟机 OS 没有限制,我使用的是 ubuntu ESXi 开启显卡直通 假设已经安装好了 ESXi,通过 WebUI 进入 Host 的 Manage 界面,点击 Hardware,如图 把 nVidia 开头的这几个全部选中,然后 “Active”, 表示开启 PCI 设备的直通 (passthrough)。 重启物理主机。 配置虚拟机 创建一个新虚拟机,或者修改已有的虚拟机, 点击 Edit,VM Options ,在 Advanced 里面点击 Edit configuration 。 增加一条配置参数 hypervisor.cpuid.v0, 对应的值为 FALSE,这一步的目的是让驱动把虚拟机当做物理机来处理。 另一需要修改的地方让虚拟机硬件配置内存大小下面勾选 “Reserve all guest memory (All locked)”,让虚拟机启动时一次性获取物理主机内存,而不是按需获取。 到这里,主机和虚拟机的配置就全部完成了,接下来是驱动软件的安装 虚拟机安装驱动 重启并进入虚拟机 CLI,首先可以确认一下 GPU 已经被直通给了虚拟机,这一步不是必须要做,但检查一下没坏处。 ...

2020-06-13 · Me

从 Kubernetes 中访问 Memorystore

Memorystore 是 Google Cloud 在 2018 年推出的托管 Redis 服务,让用户一键生成 Redis 实例,必要的时候再一键 scale,省去了维护 Redis 的烦恼。 本文在 k8s 中部署一个简单的小程序访问 Memorystore 数据库,获取 counter 值,并开启一个 http server 对外提供这个值。 准备 GCP 提供了一个命令行工具 gcloud,几乎所有的 web 操作都有对应的 CLI,非常方便。不同操作系统对应的安装包可以在这里下载 我的笔记本就叫它 “local host”,安装好 gcloud 之后,以下所有的操作都在 local 进行,命令执行的结果直接部署到 cloud 中。 现在开始前期准备工作。首先,在 GCP web 界面一键创建 Memorystore,之后我们能在 MemoryStore 的 Instances 里面看到这个实例,它的 IP 地址是 10.0.16.3 端口 6379。 很显然,10.0.16.3 这个 IP 是无法直接访问的,而如果你在相同的 GCP Project 里面创建了一个 VM instance,GCP 会自动创建一条路由,让你的 VM 可以 telnet 10.0.16.3 6379。 然后,创建一个 k8s 集群,这一步也同样可以在 web 界面里做,如果要用 GCP 提供的 gcloud 命令行的话如下: ...

2019-08-25 · Me

minikube, 单机版 kubernetes

本来想在我的 linux 主机上创建 3 个虚拟机,然后手工搭建一个拥有 3 个节点的 k8s 集群。 但是翻了翻网上的各种教程,发现每个教程都是巨复杂,给我一种 “即使我跟着教程千辛万苦敲完所有命令,也不一定能运行” 的感觉。最后,我发现了 minikube 这个东西,可以方便的搭建一个单机版 k8s。 麻雀虽小五脏俱全,即便是这样一个简单的 k8s,目前也足够我学习一些基本知识了。 本文记录一下安装 minikube 的具体步骤,并在 k8s 中部署一个简单的服务。 安装 minikube 开局一张图,先展示一下 minikube 的整个架构。 首先是准备工作,更新系统,安装必要组件。 sudo apt-get update sudo apt-get install apt-transport-https sudo apt-get upgrade 然后安装 virtualbox, sudo apt install virtualbox virtualbox-ext-pack 安装 minikube wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 chmod +x minikube-linux-amd64 sudo mv minikube-linux-amd64 /usr/local/bin/minikube 添加 kubectl 源 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - 值得注意的是,我的主机是 ubuntu 18.04,代号 bionic,而安装的源却是 xenial,对应 ubuntu 16.04。 这是因为 kubernetes 源还没有为 18.04 更新,不过旧的源仍然可以用,亲测有效。 ...

2019-08-13 · Me