2011-03-03 9 views
1

ipython의 병렬 기능을 원격 컴퓨터 클러스터에서 사용하고 싶습니다. 헤드 노드 만 외부에서 액세스 할 수 있습니다. 나는 예를 들어 헤드 노드에 연결할 수 있도록 ssh 키를 설정했다. ssh head 그리고 암호를 입력하지 않고도 모든 노드에 ssh를 보낼 수 있습니다. ssh node3. 그래서 기본적으로 수행하여 노드에서 모든 명령을 실행할 수 있습니다헤드 노드를 통해 병렬 ipython/ipcluster

ssh head ssh node3 command 

지금 내가 정말하고 싶은 것은 ipython에서 내 자신의 컴퓨터에서 클러스터 작업을 실행 할 수 있습니다. ipcluster에 사용할 호스트를 설정하는 방법은 다음과 같습니다

send_furl = True 
engines = { 'host1.example.com' : 2, 
      'host2.example.com' : 5, 
      'host3.example.com' : 1, 
      'host4.example.com' : 8 } 

을하지만 난 단지 헤드 노드의 호스트 이름이 있기 때문에, 나는이 작업을 수행 할 수 있다고 생각하지 않습니다. 한 가지 옵션은 헤드 노드에서 ssh 터널링을 설정하는 것이지만, 모든 경우를 수용 할 수있는 충분한 포트가 필요하기 때문에 필자는이 작업을 수행 할 수 없습니다. 대안이 있습니까?

답변

0

마스터에 VPN 서버를 설치하고 로컬 컴퓨터의 VPN 클라이언트로 서버를 연결합니다. 일단 설정되면 가상 사설망은 모든 로컬 슬레이브가 로컬 시스템과 동일한 LAN에있는 것처럼 보이도록 허용합니다 ("가상"네트워크 인터페이스, "가상"서브넷에 있음). 가능해야합니다. 그들에게 ssh.

VPN을 설정할 수 있습니다. over SSH ("ssh tunneling") 다른 옵션은 OpenVPNIPsec입니다.

"모든 노드를 수용 할 수있는 충분한 포트가 필요합니다."라는 의미를 이해하지 못합니다. (i) 마스터에서 하나의 인바운드 포트, ​​VPN/터널 제공, (ii) 각 슬레이브에서 마스터에서 액세스 할 수있는 인바운드 SSH, (iii) 마스터 드라이브가있는 각 슬레이브의 다른 인바운드 포트 IPython 엔진. 어떤 설정에서 (ii) 및 (iii)이 필요하지 않습니까? 그래서 우리가 추가 한 것은 (i)입니다.