准备工作
我的组装台式机主要配置
- 英特尔(Intel)i9-9820X 酷睿十核 盒装CPU处理器 (10核20线程)
- 微星(MSI)X299 GAMING PRO CARBON主板 (IntelX299/LGA 2066)
- 金士顿(Kingston) DDR4 2400 16GB 台式机内存条 骇客神条 Fury雷电系列 8条 (128GB)
- 西部数据(WD)黑盘 4TB SATA6Gb/s 7200转256M 台式游戏硬盘(WD4005FZBX)
主机系统
Windows 10 Pro
Linux 发行版iso镜像
Ubuntu 20.04 LTS desktop
我的Linux命令行技术实在太差,就用桌面版了。如果为了追求极限的运算性能肯定还是Server版好一些。
安装Ubuntu虚拟机
启用Hyper-V服务
-
控制面板 -- 程序与功能 -- 启动或关闭Windows功能:把Hyper-V及其子目录全部勾上:
-
重启计算机
-
在开始菜单搜索Hyper-V,打开Hyper-V管理器:
-
我这里已经创建了一些虚拟机:
创建虚拟机
-
在右侧操作窗口点击
新建
,创建虚拟机:
-
我的系统盘是SSD,这里需要把虚拟机装在4T的机械硬盘上:
-
选择第二代虚拟机:
-
分配内存:由于我计划要把几乎所有内存都用来跑CellRanger,这里需要把动态内存取消,设置为每次启动时直接将足量内存分配给虚拟机。否则虚拟机向宿主机索取内存时似乎会影响虚拟机中在跑的程序。
-
后面的配置网络和连接虚拟硬盘都不要配置,我们稍后再手动配置:
-
点击
完成
即可。
创建虚拟交换机
-
回到主界面,点击
新建
,选择创建虚拟硬盘:
-
磁盘格式选择默认的VHDX:
-
磁盘类型选择固定大小,以便获得最佳性能:
-
指定虚拟硬盘文件的路径,把它放到虚拟机的位置就可以:
-
指定虚拟硬盘大小,给够1.5个T:
-
依次点击下一步、完成即可完成创建。由于我们选择的是固定分配大小,这个写入过程会非常长,我记得花了大约2小时。
创建虚拟交换机
Hyper-V的虚拟机需要创建虚拟交换机才能使用互联网
-
回到主界面,点击
虚拟交换机管理
--新建虚拟网络交换机
:
-
设置虚拟交换机为外部网络。我用的是有线网络,所以就选主板上自带的那个接口。如果是用WIFI,需要选到相应的无线网络适配器。
这样应该是相当于虚拟机直接使用物理机的网络适配器,就能连接外网了。
设置虚拟机
这里就以我之前已经创建好的虚拟机ubuntu
设置为例:
-
选中指定虚拟机,点击设置:
-
弹出以下窗口:
-
首先设置CPU,我把18/20的逻辑处理器全部分配给了虚拟机:
-
设置
SCSI控制器
,我们需要分别添加硬盘驱动器
和DVD驱动器
(用于加载Ubuntu的安装镜像):
-
选择
硬盘驱动器
,点击浏览
把之前创建的虚拟硬盘路径添加进来(根据你创建硬盘时的设置):
-
选择
DVD驱动器
,添加Ubuntu的映像文件:
-
点击
网络适配器
,选择我们自己创建的虚拟交换机:
-
点击下方的
检查点
,把启用检查点的勾去掉,否则每次关机会把大量的检查点文件写入硬盘。我们通常并不需要这个功能:
-
点击
自动启动操作
,选择无
:
-
点击
自动停止操作
,选择强行关闭虚拟机
。 这一点非常重要! 否则每次还是会把内存中的内容写入硬盘,贼麻烦:
到这里,虚拟机设置已经完成了。回到主界面,选中你的虚拟机,点击启动即可。由于我们设置了在启动时把95%的内存一次性分配给虚拟机,请务必先关闭各种后台进程,保证足够的空闲内存,否则虚拟机将无法启动!
安装Ubuntu 桌面版
由于写这篇教程的时候我的电脑正在跑CellRanger,这里就用网上的图来举例子好了(https://www.sysgeek.cn/install-ubuntu-20-04-lts-desktop/)。
-
虚拟机启动后,需要点击
连接
才能与虚拟机交互。 -
如果顺利,此时应当进入Ubuntu的安装界面:
-
这一步注意我们应当改成
最小安装
,充分把性能用在刀刃上:
-
后面的就傻瓜式操作了:
-
这里注意,必须选择
登录时需要密码
,涉及到之后我们设置更好的交互界面:
-
安装完成后会提示重新启动系统,不要点击重启, 否则同样会将内存中的内容写入硬盘!应当在Hyper-V主界面点击
关机
。
应当注意的是,在Hyper-V中使用Ubuntu虚拟机,只能在电源处选择关机,再开启,而不能选择休眠或重启,否则会导致关机时将内存内容写入硬盘(亲测十分坑爹!!!)
配置Ubuntu
更新Ubuntu软件
- 在Hyper-V主界面再次启动虚拟机并连接,这时应该能正常进入Ubuntu了。
- 在完成一些个性化设置后,需要更新软件库:
sudo apt update
sudo apt upgrade
- 手动重启一次虚拟机,即可完成更新配置。
配置增强会话
相信大家一定发现Hyper-V自带的交互界面卡顿得令人发指,而且不能在虚拟机和宿主机之间传文件,我们下面通过配置增强会话来解决这个问题。
- 安装
git
:
sudo apt install git
- 把以下Github仓库clone下来:
git clone https://github.com/Hinara/linux-vm-tools.git
cd ./linux-vm-tools/ubuntu/20.04/
sudo chmod +x ./install.sh
sudo ./install.sh
- 等待运行完,会提示重启虚拟机,同样不要忘记需要手动重启。
- 重启后,进入该目录再次运行(我印象中这一步似乎不需要了。如果你之前没有更新软件库的话,它会先帮你调用
apt
更新软件,然后提示你重启,重启后再次运行该文件才会帮你配置Xrog
之类的库):
sudo ./install.sh
- 关闭虚拟机。
- 以管理员打开powershell,运行:
Set-VM -VMName 你的虚拟机名字 -EnhancedSessionTransportType HvSocket
-
再次启动虚拟机并点击
连接
,应该会弹出Xrog
的设置窗口:
-
点击
显示选项
,可以在本地资源
勾选剪贴板共享
-
点击
更多
,可以设置共享硬盘(用来传文件):
-
设置完成后,点击
连接
,输入用户名和密码(这就是为什么我们安装Ubuntu时不要勾选自动登录):
-
然后你就可以在Ubuntu中愉快的玩耍了:
共享文件
-
打开文件夹,左侧栏有一个
shared-drives
:
-
里面其实就是你之前设置的可共享本地驱动器,可以用来在虚拟机和宿主机之间传递文件:
至此,我们已经拥有了Linux环境,可以在上面运行CellRanger了!
配置并运行CellRanger
根据10x Genomics官方的教程来做就行了:
https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/installation
贴一张自己电脑跑CellRanger的截图:
其他
我过去用过VirtualBox搭建虚拟机跑CellRanger,经常在写入BAM文件那一步卡住,感觉是VirtualBox虚拟化技术导致的硬盘I/O问题。Hyper-V作为Type I虚拟机,是直接把Ubuntu系统架在物理机硬件上的,由于缺少虚拟化软件作为中介,理论上说性能应该比Type II虚拟机(Virtualbox或VMware)更好。
网友评论