VPN을 통해 노트북에서 Wolfram 원격 커널을 실행하는 방법
VPN은 연결만 전달합니다. 첫 평가 전에 커널 권한, SSH 실행, 원격 실행 파일, 파일 경로를 계획하십시오.
VPN에 연결하고 노트북을 열면 무거운 셀이 서버에서 실행될 것이라고 기대합니다. 실제로 터널은 패킷만 전달합니다. 평가기를 설치하지 않고 라이선스를 부여하지 않으며 어느 머신이 코드를 실행할지도 선택하지 않습니다. 이는 세 가지 별개의 일이며, 원격 커널 워크플로에는 첫 계산이 신뢰할 수 있기 전에 세 가지가 모두 필요합니다.
신화: VPN 연결이 곧 설정이다
VPN은 노트북과 서버 사이에 네트워크 경로를 제공합니다. 이는 유용하고 종종 필요합니다. 실행 채널과 커널 연결이 원격 호스트에 도달해야 하기 때문입니다. 그러나 그 호스트에 Wolfram 커널이 있는지, 라이선스가 두 번째 동시 프로세스를 허용하는지, 프런트 엔드가 그것을 사용하도록 구성되어 있는지는 말해 주지 않습니다.
관리되는 노트북에는 프런트 엔드만 있고 권한은 서버에 연결되어 있을 수 있습니다. 반대의 경우도 있습니다. 노트북의 데스크톱 라이선스는 공유 인프라의 커널을 허가하지 않습니다. 어느 경우든 터널을 다시 연결해서 해결되지 않습니다.
이 가정을 일찍 시험하십시오. 새 노트북에서 $MachineName을(를) 평가하고 예상 호스트와 답을 비교하십시오. 노트북 이름이 반환되면 VPN이 아무리 정상으로 보여도 셀은 로컬에서 실행된 것입니다.
프런트 엔드와 평가기를 분리하십시오
프런트 엔드는 창입니다. 셀을 편집하고 출력을 렌더링하며 노트북 파일을 저장합니다. 커널은 식을 평가하고 정의를 메모리에 유지하는 프로세스입니다. 프런트 엔드를 닫아도 커널은 이동하지 않으며, 노트북을 저장해도 커널의 상태는 저장되지 않습니다.
원격 커널이 연결되면 노트북 파일 위치와 커널의 작업 디렉터리는 다른 것입니다. Directory[]은(는) 평가기의 디렉터리를 보고하며, Import, Export 및 상대 파일 이름에 중요한 경로가 바로 이것입니다. 노트북 컴퓨터에서 노트북 옆에 있는 데이터 세트는 다른 머신에서 실행되는 커널에 보이지 않습니다.
분석을 작성하기 전에 공유 마운트 위치, 승인된 전송 단계, 또는 서버가 직접 접근할 수 있는 데이터베이스 중 하나로 데이터가 서버에 어떻게 도달할지 결정하십시오. 이 선택은 노트북 경로에 의존하는 노트북이 다음에 다른 사람이 실행할 때 실패하기 때문에 재현성에 영향을 줍니다.
승인된 채널로 커널을 실행하십시오
Wolfram의원격 커널 안내서는 커널 항목 추가, 원격 머신 선택, SSH를 통한 실행을 설명합니다. 예제의 실행 파일 경로와 인수는 해당 제품의 워크플로에 속합니다. 그대로 붙여 넣지 말고 관리자가 지정한 호스트와 버전에 맞게 조정하십시오.
호스트 ID는 설정의 일부입니다. 조직의 절차로 SSH 호스트 키를 확인하고, 발급된 인증 방법을 사용하며, 개인 키와 암호를 공유되거나 저장소에 커밋되는 노트북 파일 밖에 두십시오. 실행 명령과 암호가 있는 노트북은 편의가 아니라 자격 증명 유출입니다.
지름길로 WSTP 수신기를 인터넷에 열지 마십시오. 지원되는 패턴은 SSH 실행이며, 커널 채널을 인증된 연결 안에 유지합니다. 네트워크 팀이 다른 전송을 승인했다면 그것을 사용하되, 노출된 평가기 포트는 문제 해결 단계가 아니라 설계 변경으로 취급하십시오.
먼저 권한, 데이터, 출력 크기를 확인하십시오
라이선스 소유자와 함께 서버가 이 사용자를 위해 커널을 실행할 수 있고 동시 세션이 허용되는지 확인하십시오. 원격 컴퓨팅은 데스크톱 프런트 엔드와 별도로 라이선스되는 경우가 많으며, 권한 때문에 실패한 실행은 서버 메시지를 누군가 읽기 전까지 실패한 SSH 명령처럼 보입니다.
그다음 결과의 크기를 추정하십시오. 몇 기가바이트짜리 식을 반환하는 커널은 실행 및 커널 채널을 통해 프런트 엔드로 보내며, 이는 노트북의 메모리를 멈추거나 고갈시킬 수 있습니다. 무거운 집계는 서버에 두고 요약을 반환하거나, 큰 결과를 서버 경로에 기록하고 의도적으로 전송하십시오.
노트북의 설정 메모에 실행 파일 경로, 실행 인수, 작업 디렉터리를 기록하십시오. 그러면 다음 사용자는 서버가 다섯 가지 가능한 경로 중 어느 것을 쓰는지 다시 찾아내는 대신 이 배치를 재현합니다.
단계를 순서대로 진단하십시오
다섯 단계가 모두 성공해야 하며 각각 다른 테스트가 있습니다. 노트북에서 시작하여 여러 설정을 한꺼번에 바꾸는 대신 첫 실패에서 멈추십시오:
nc -vz research.example.edu 22
ssh -v [email protected] 'hostname; command -v wolframscript'
ssh [email protected] 'wolframscript -code "$MachineName"'TCP 검사 실패는 라우팅, DNS 또는 VPN의 허용된 목적지를 가리킵니다. TCP 검사는 성공했지만 SSH 로그인이 실패하면 인증 또는 호스트 키 정책을 가리킵니다. 로그인은 되지만 실행 파일을 찾지 못하면 커널 설치 또는 프런트 엔드에 주어진 경로를 가리킵니다. 시작되지만 연결되지 않는 커널은 실행 인수 또는 로컬 방화벽을 가리킵니다.
첫 번째 의미 있는 오류를 보존하고 서버 측 단계를 그 머신을 소유한 관리자에게 보내십시오. 커널 항목을 반복해서 다시 만들면 어느 단계가 실제로 실패했는지 가려지고 관리자에게 필요한 증거가 버려집니다.
마지막으로 원하는 것은 알아볼 수 있는 창, 이름을 붙일 수 있는 평가기, 코드와 파일에 대해 합의된 경로입니다. VPN은 그 경로의 한 구성 요소이며, 워크플로가 그것을 빨리 반영할수록 결코 문제가 아니었던 터널을 다시 연결하는 데 드는 시간이 줄어듭니다.