fangpsh's blog

搭建树莓派集群

Raspberry Pi Cluster

大三上学期,有幸在小马哥的帮助下申请到资金搭建树莓派集群。粗糙记录下过程。

初识树莓派

参考样例 - pi-supercomputer 基本过程可参考本文档 - build-your-own-supercomputer-out-of-raspberry-pi-boards - www.cl.cam.ac.uk/projects/raspberrypi/

材料

  • 树莓派
    • 排插
    • SD卡
    • USB_micro线(供电)
    • USB适配器(5V/1A~2A),也可以使用带源USB-HUB,从USB空供电
  • 交换机,路由器
  • 网线
  • 乐高积木
  • 散热电风扇(可利用机箱风扇自主组装)
  • 散热片
  • 导热硅胶

可选(以下做调试之用):

  • HDMI-VGA转换器
  • 键盘
  • 鼠标
  • 显示器
  • PC机
  • USB-TTL线

以上材料根据具体调整数量。

组装

系统刷写

可以选择的系统非常多,有Raspbian,Archlinuxarm,Pidora等等,按需选择。 刷系统,主要是往SD卡中写入系统,Linux下可以使用dd命令,windows下可以使用Win32DiskImager。 可以先刷写一个SD卡,然后进行常规配置和自定义配置,提取镜像,再写人其他SD卡。

积木搭建

具体按照实际情况搭建,本项目方案为,4层为一组,一共8组,一共32片树莓派。 组与组之间需要预留组工的空间方便通风散热与线材的放置。

散热方案

一定要加散热片(散热片很便宜),在组装积木前将散热片用导热硅胶贴好。 风扇也是必须的,如果是夹扇,可在高处摇头吹。 网络拓扑结构

路由器用来划分子网,同时作为DHCP服务器。交换机上行端口接路由器LAN口,树莓派接交换机端口。树莓派配置固定IP,方便管理。 配置固定IP,以Raspbian(debain系)为例: 编辑 /etc/network/interfaces

auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.1.2 #ip地址
        netmask 255.255.255.0#掩码
        gateway 192.168.1.1 #网关,路由器IP

重启网络服务

#root用户,或者加sudo
/etc/init.d/networking restart
OR
service networking restart

如果需要还可配置DNS服务器。 配置

在管理的节点生成ssh-key,把public分发到客户机,添加信任。手动添加非常繁琐,可以在前面一步,刷写系统的时候刷人public-key,或者使用 ssh-copy-id 为了使用ssh方便,可以修改hosts,如下:

192.168.1.101 pi01
192.168.1.102 pi02
192.168.1.103 pi03
....

然后 ssh pi[01~32]即可. 或者编写ssh的config文件, 参考:Simplify Your Life With an SSH Config File

管理工具(mssh,pssh,ansible..)

#example
pssh -t 99999 -h pssh-rpis -P sudo aptitude update
pssh -t 99999 -h pssh-rpis -P sudo aptitude -y upgrade

部署监控(Ganglia,berryio)

并行程序

负载均衡

例子:

  • [apache])(http://raspberrywebserver.com/raspberrypicluster/raspberry-pi-cluster.html)
  • squid+haproxy+…

Hadoop集群

玩玩就好。。

OpenStack Swift

openstack/swift-on-pi

挖矿

使用cgminer,具体可参考无矿机情况下使用树莓派CPU挖矿 速度就不说了,纯粹浪费电。。

其他

搭建Raspbian镜像

树莓派集群使用的系统主要为Raspbian,当进行软件包安装或更新时,如果有本地镜像,可以大大加快速度,节省时间。

Rsync:
rsync --archive --verbose --delete --delete-delay --delay-updates \
    archive.raspbian.org::archive /path/to/local/mirror

添加 crontable , 自动更新。 配置 webserver 或 ftpserver提供服务。

USB-TTL连接树莓派

在缺少外接显示器或者SSH出现故障时,利用TTL连入树莓派比较快捷。

  • 软件:putty,minicom…
  • 工具:USB转TTL小板加杜邦线,或者直接买USB–TTL线。

步骤

连接:

RX-TX
TX-RX
GND-GND
切勿将VC接到GND上

具体GPIO口定义请查看 树莓派上手实战之通过TTL串口终端连接RaspberryPi

#minicom
sudo aptitude install minicom
minicom -D /dev/ttyUSB0 -b 115200 #波特率为115200

超级终端通过串口与树莓派传输文件

参考 - RPi Low-level peripherals - 推荐树莓派DIY笔记 - Dropbox: ~~树莓派资料整合共享~~