2 votes

Démarrer le PC de bureau à partir du SSD installé dans l'ordinateur portable via Ethernet

Pour le travail, j'utilise principalement un ordinateur portable (le système d'exploitation est Ubuntu 20.04), car j'ai besoin d'être mobile. Cependant, lorsque je suis à la maison, j'ai également un puissant PC de bureau (fonctionnant également sous Ubuntu 20.04) que je préfère utiliser pour compiler de gros projets logiciels, car il est beaucoup plus rapide. Comme je passe souvent de l'ordinateur portable au PC, j'ai besoin de garder tous mes fichiers synchronisés (documents, signets de navigateur, etc.), ce qui est bien sûr possible, mais j'aimerais trouver une solution plus confortable.

Serait-il possible de ne pas utiliser du tout le SSD installé dans le PC, mais de démarrer directement à partir du SSD installé dans l'ordinateur portable ? Par exemple, avec un démarrage par Ethernet ? Je pourrais alors utiliser la puissance de calcul du PC et, lorsque j'ai besoin d'emmener mon ordinateur portable avec moi, je n'aurais pas besoin de me souvenir de le synchroniser, puisque j'utilise le même SSD de toute façon.

Mon ordinateur portable est un Lenovo ThinkPad T14s AMD (1Gbit ethernet) et le PC de bureau est une plateforme AM4 avec un adaptateur ethernet 2.5GBit.

Je suis heureux de fournir plus de détails si nécessaire. Je ne suis pas sûr que ce que j'aimerais réaliser soit possible du tout. Je suis prêt à acheter du matériel supplémentaire si nécessaire (par exemple, un commutateur ?).

2voto

James Mertz Points 390

C'est possible, mais rappelez-vous que l'Ethernet Gigabit standard n'est que de ~100 Mo/s, ce qui est bien plus lent que n'importe quel SSD (même les SSD SATA fonctionnent à ~500 Mo/s) et pour les grandes lectures linéaires, c'est plus lent que même la plupart des disques durs. C'est peut-être ce qui ressemble le plus au démarrage à partir d'une clé USB bon marché.

Pour les travaux quotidiens (utilisation interactive), cela pourrait en fait annuler les gains de performances obtenus grâce à un processeur plus rapide. Vous aurez très probablement besoin de compiler des logiciels sur un stockage local ou un tmpfs (en mémoire), sinon le système de fichiers du réseau ne sera pas en mesure de suivre. N'oubliez pas que pour compiler un fichier, le compilateur doit en fait lire (et ensuite lire les en-têtes inclus, et leurs en-têtes inclus, et...) - même avec la mise en cache, cela introduira toujours un délai significatif avant d'atteindre réellement le processus lié au CPU.

En dehors de cela, je recommande toujours de démarrer le système d'exploitation du bureau localement, et de ne monter que le système d'exploitation de l'ordinateur. /home sur le réseau. Cela présente plusieurs avantages :

  • Le processus de démarrage sera plus simple. Vous n'aurez pas besoin d'intégrer le réseau dans l'initramfs de Linux - vous pourrez simplement utiliser ce qui est installé sur le bureau normalement. Avec NFS, cela peut être aussi simple qu'une entrée dans /etc/fstab.

  • Le système d'exploitation de l'ordinateur portable n'aura pas besoin de se soucier des différences matérielles entre les deux ordinateurs. Vous n'aurez pas besoin de conserver deux jeux de configurations Ethernet, deux jeux de pilotes de GPU, etc.

  • Vous pourrez toujours utiliser le stockage local rapide de l'ordinateur de bureau pour le système d'exploitation lui-même (ce qui évite une augmentation considérable de la latence dans les tâches quotidiennes, et laisse la connexion Ethernet inoccupée - ce qui rend l'accès à /home plus rapide sur le net).

  • Tous les mécanismes d'amorçage par le réseau nécessitent que l'ordinateur portable soit allumé en permanence et qu'un système d'exploitation fonctionne pour servir les données.

    Si vous partagez le tout le site SSD, vous aurez des difficultés à démarrer le même rootfs à partir de deux ordinateurs à la fois - les méthodes basées sur les blocs (iSCSI, NBD) sont exclues, et les méthodes basées sur les fichiers (NFS, SMB) ne fonctionneront de manière fiable que si le deuxième ordinateur accède au système de fichiers en lecture seule.

    Pour cette raison, même si certains admins faire Pour démarrer de nombreux systèmes à partir d'un hôte central, généralement seuls /usr et /lib sont réellement partagés (et surtout en lecture seule) tandis que /var est toujours monté à partir du stockage local.

    La seule autre solution serait de démarrer l'ordinateur portable à partir d'une clé USB contenant une version minimale de Linux "serveur", qui lui permet ensuite de servir le SSD en mode lecture-écriture sur le réseau.

Pour les montages à l'échelle du système, je recommande de commencer avec NFSv4, qui est généralement le protocole de choix pour l'accès transparent aux fichiers entre Linux (pratiquement l'équivalent Unix de SMBv3 de Windows).

  • Mais gardez à l'esprit que NFS ne dispose pas d'une bonne couche de sécurité "intermédiaire" - il n'a que deux options : sec=krb5p/krb5i (Kerberos) et sec=sys (adresse IP de confiance). La valeur par défaut est sec=sys ce qui ne vous donne aucune sécurité. (J'ai configuré Kerberos pour mes serveurs personnels, mais cela demande un peu plus d'infrastructure).

  • Sous Debian (et probablement Ubuntu), le service NFS est disponible en installant nfs-kernel-server . Ajoutez une entrée pour /home dans le fichier /etc/exports et assurez-vous que le pare-feu autorise les connexions au port 2049/tcp. (Vous pouvez ignorer portmapper/statd/mountd, ils ne sont pas pertinents pour NFSv4).

    (Aussi, bien que certains articles suggèrent que NFSv4 rende /etc/exports plus complexe avec la nécessité d'un "fsid=0" magique et de devoir tout mettre sous "/export", ce n'est pas réellement vrai - c'est une option mais la manière traditionnelle d'avoir juste une entrée /home est tout à fait suffisante).

  • Sur le bureau, installez nfs-common et tenter votre chance avec :

    mount -t nfs -o vers=4,soft,nodev,nosuid LAPTOP_ADDRESS:/home /mnt/laptop

    Une fois que cela fonctionne, ajoutez une entrée équivalente dans /etc/fstab :

    LAPTOP_ADDRESS:/home  /mnt/laptop  nfs  vers=4,soft,nodev,nosuid  0  0

    Cela ne recouvre pas le /home de votre bureau. Si vous le souhaitez, il suffit de modifier le chemin de montage en conséquence - mais si vous voulez avoir à la fois les options "bureau autonome" et "connecté à l'ordinateur portable" facilement disponibles, il peut être plus facile de le garder dans /mnt/laptop.

    (Le démon 'autofs' peut être utilisé pour implémenter une logique plus complexe sur ce qui doit être monté où).

Il existe plusieurs possibilités :

  • sshfs c'est-à-dire SFTP (SSHv2). Cela offre une bonne sécurité, les performances sont ok mais il est limité à un UID par montage et il n'est pas garanti qu'il supporte certaines des opérations de fichiers les plus rares (fallocate, truncate, etc), seulement la lecture/écriture de base. Vous pouvez donc l'utiliser pour accéder à votre répertoire personnel, mais vous ne pouvez pas exécuter un système d'exploitation complet à partir de celui-ci, et vous ne devriez pas non plus compiler beaucoup de choses via sshfs.

  • SMBv3 (avec Samba sur l'ordinateur portable). Cette solution offre une sécurité moyenne et se situe en général quelque part entre SFTP et NFSv4. Ne fait pas de liens symboliques.

  • cifs alias SMBv1 (toujours avec Samba). Il n'y a pas de cryptage des données, mais il prend en charge les liens symboliques et d'autres fonctions POSIX, ce qui permet en théorie de démarrer l'ensemble du système d'exploitation, mais je ne le recommande pas.

  • NBD, iSCSI et AoE (ATA-over-Ethernet). Tous trois sont utilisés pour exporter des dispositifs de blocage (c'est-à-dire des disques bruts ou des partitions) plutôt que des systèmes de fichiers. Ils exigent un accès exclusif au périphérique à partager, c'est-à-dire que le même /home ne peut pas être monté en même temps sur l'ordinateur portable. De plus, je ne suis pas sûr que les performances soient aussi bonnes qu'avec NFS.

    Ainsi, si vous souhaitez démarrer un système d'exploitation complet via NBD/iSCSI, vous pouvez le faire, mais l'ordinateur portable doit exécuter un système d'exploitation de serveur dédié à partir d'un autre support.

  • Enfin, pour les documents, j'utiliserais simplement Syncthing.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X