2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程

准备工作

我的组装台式机主要配置

  • 英特尔(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及其子目录全部勾上:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第1张图片
  • 重启计算机

  • 在开始菜单搜索Hyper-V,打开Hyper-V管理器:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第2张图片
  • 我这里已经创建了一些虚拟机:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第3张图片

创建虚拟机

  • 在右侧操作窗口点击新建,创建虚拟机:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第4张图片

  • 我的系统盘是SSD,这里需要把虚拟机装在4T的机械硬盘上:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第5张图片
  • 选择第二代虚拟机:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第6张图片
  • 分配内存:由于我计划要把几乎所有内存都用来跑CellRanger,这里需要把动态内存取消,设置为每次启动时直接将足量内存分配给虚拟机。否则虚拟机向宿主机索取内存时似乎会影响虚拟机中在跑的程序。


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第7张图片
  • 后面的配置网络和连接虚拟硬盘都不要配置,我们稍后再手动配置:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第8张图片

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第9张图片
  • 点击完成即可。

创建虚拟交换机

  • 回到主界面,点击新建,选择创建虚拟硬盘:

  • 磁盘格式选择默认的VHDX:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第10张图片
  • 磁盘类型选择固定大小,以便获得最佳性能:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第11张图片
  • 指定虚拟硬盘文件的路径,把它放到虚拟机的位置就可以:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第12张图片
  • 指定虚拟硬盘大小,给够1.5个T:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第13张图片
  • 依次点击下一步、完成即可完成创建。由于我们选择的是固定分配大小,这个写入过程会非常长,我记得花了大约2小时。

创建虚拟交换机

Hyper-V的虚拟机需要创建虚拟交换机才能使用互联网

  • 回到主界面,点击虚拟交换机管理 -- 新建虚拟网络交换机

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第14张图片

  • 设置虚拟交换机为外部网络。我用的是有线网络,所以就选主板上自带的那个接口。如果是用WIFI,需要选到相应的无线网络适配器。



    这样应该是相当于虚拟机直接使用物理机的网络适配器,就能连接外网了。

设置虚拟机

这里就以我之前已经创建好的虚拟机ubuntu设置为例:

  • 选中指定虚拟机,点击设置:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第15张图片
  • 弹出以下窗口:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第16张图片
  • 首先设置CPU,我把18/20的逻辑处理器全部分配给了虚拟机:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第17张图片
  • 设置SCSI控制器,我们需要分别添加硬盘驱动器DVD驱动器(用于加载Ubuntu的安装镜像):

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第18张图片

  • 选择硬盘驱动器,点击浏览把之前创建的虚拟硬盘路径添加进来(根据你创建硬盘时的设置):

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第19张图片

  • 选择DVD驱动器,添加Ubuntu的映像文件:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第20张图片

  • 点击网络适配器,选择我们自己创建的虚拟交换机:

  • 点击下方的检查点,把启用检查点的勾去掉,否则每次关机会把大量的检查点文件写入硬盘。我们通常并不需要这个功能:

  • 点击自动启动操作,选择

  • 点击自动停止操作,选择强行关闭虚拟机这一点非常重要! 否则每次还是会把内存中的内容写入硬盘,贼麻烦:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第21张图片

到这里,虚拟机设置已经完成了。回到主界面,选中你的虚拟机,点击启动即可。由于我们设置了在启动时把95%的内存一次性分配给虚拟机,请务必先关闭各种后台进程,保证足够的空闲内存,否则虚拟机将无法启动!

安装Ubuntu 桌面版

由于写这篇教程的时候我的电脑正在跑CellRanger,这里就用网上的图来举例子好了(https://www.sysgeek.cn/install-ubuntu-20-04-lts-desktop/)。

  • 虚拟机启动后,需要点击连接才能与虚拟机交互。

  • 如果顺利,此时应当进入Ubuntu的安装界面:



    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第22张图片
  • 这一步注意我们应当改成最小安装,充分把性能用在刀刃上:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第23张图片

  • 后面的就傻瓜式操作了:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第24张图片

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第25张图片
  • 这里注意,必须选择登录时需要密码,涉及到之后我们设置更好的交互界面:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第26张图片

  • 安装完成后会提示重新启动系统,不要点击重启, 否则同样会将内存中的内容写入硬盘!应当在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的设置窗口:

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第27张图片

  • 点击显示选项,可以在本地资源勾选剪贴板共享

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第28张图片

  • 点击更多,可以设置共享硬盘(用来传文件):

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第29张图片

  • 设置完成后,点击连接,输入用户名和密码(这就是为什么我们安装Ubuntu时不要勾选自动登录):

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第30张图片

  • 然后你就可以在Ubuntu中愉快的玩耍了:


共享文件

  • 打开文件夹,左侧栏有一个shared-drives

    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第31张图片

  • 里面其实就是你之前设置的可共享本地驱动器,可以用来在虚拟机和宿主机之间传递文件:


    2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程_第32张图片

至此,我们已经拥有了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)更好。

你可能感兴趣的:(2020-08-06 在hyper-V安装ubuntu并运行CellRanger count流程)