Edito

Evidemment, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème. ;o))

mardi 21 avril 2015

ISIS Alternative - INDIESTOR


Indiestor est une alternative sympathique à l'ISIS (mais ce n'est pas un Isis, quoique) Petite Install Rapide & premiers Tests - ( http://indiestor.com ).
L'intérêt de la solution est de recycler une vieille ou petite machine en serveur de projets partagés pour Media-composer et ça fonctionne !!!
La base pour démarrer Indiestor : Installer une Debian ( https://www.debian.org ), faire un user, le mettre ds les sudoers ( Groupe administrator : $sudo usermod -aG sudo <username> ) ou


ZFS
Ca faisait longtemps que je voulais jouer avec donc on installe pour tester ZFS dessus car si l'on a pas un RAID Hardware, ça en fera un soft, mais même avec un Raid-H on peut mettre zfs pour avoir les quotas de indiestor-pro qui ne sont gérés que sur zfs :
http://zfsonlinux.org/debian.html
Là c'est un peu la plaie à installer mais à force ça passe
Après il faut aller lire ça ( globalement y'a tous les cas possible ) : https://pthree.org/2012/12/10/zfs-administration-part-v-exporting-and-importing- zpools/
A savoir :
On peut faire du ZFS de 1 à X Disk, le buter, l'exporter, le ré-importer etc, etc ( ça fonctionne aussi sur OSX : https://openzfsonosx.org, mais pour Windows j'ai pas trouvé ), il n'y a pas besoin de faire fsck dessus, en fait c'est l'ami de l'homme qui est ami avec la ligne de commande un peu quand même .
Base :
- buter les partitions des disques ( zfs fonctionne mieux au Disque qu'a la partoche donc on mettra les disk ds le pool )
- utiliser fdisk et faire juste une partition gpt sur les disques
- faire un zpool :
RAID0 ( ça vaut pour un disque seul aussi )
# zpool create tank sde sdf sdg sdh et ++++
RAID1
# zpool create tank mirror sde sdf
RAID10 ( 1 + 0 )
# zpool create tank mirror sde sdf mirror sdg sdh
RAID5
# zpool create tank raidz1 sde sdf sdg
RAID6
# zpool create tank raidz1 sde sdf sdg sdh
RAID + que 6 ( genre 3 disk de parité )
# zpool create tank raidz3 sde sdf sdg sdh sdi

Après on mixe le tout si on veut après avoir bien lu la doc pour faire du cache, mixer les pools les un sur les autres, faire des snapshots, du cache ...... Si vous vous ennuyez y'a moyen de passer la nuit à jouer avec :

avoir le statut d'un pool
# zpool status tank
dégommer un zpool
# zpool destroy tank
Exporter un pool
# zpool export tank
Importer un pool
# zpool import tank
récupérer un pool
- d'abord pour voir
# zpool import -D
là il va raconter ce qu'il voit ( un peu comme status ) puis ( par le nom ou l'ID ):
# zpool import -D tank
ou
# zpool import -D 17105118590326096187

Tadada -

Là on installe indiestor :
Le pas à pas ( je vais pas le refaire .... ) : http://indiestor.com/install-free/

& les petits plus ( Merci à Fred.S & Alex Gardiner de indiestor .... )
Installer netatalk 3.1.7 ( le paquet debian est un peu vieux )
# wget -q -O - http://free.indiestor.com/indiestor- free.gpg.key | sudo apt-key add -
# echo "deb http://free.indiestor.com/apt/debian wheezy main" | sudo tee -a /etc/apt/sources.list.d/indiestor-free.com.list 
# sudo apt-get update
# sudo apt-get install netatalk
check version:
# dpkg -s netatalk

Un petit Tuning du Pool ZFS :
Be sure to align the ashift value for your drives appropriately. The value should probably be 12, but you can read about that at: http://zfsonlinux.org/faq.html#PerformanceConsideration
& après avoir fait le pool :
Before loading anything into the pool:
# zfs set xattr=sa name_of_pool
# zfs set atime=off name_of_pool
# zfs set sync=disabled name_of_pool

Finally I tend to disable prefetch, as it can cause latency issues with streaming workloads.
# echo 1 > /sys/module/zfs/parameters/zfs_prefetch_disable
To make this change persistant you need to create a config file here, with the following option:
# pico /etc/modprobe.d/zfs.conf
# options zfs zfs_prefetch_disable=1

Après cette première Partie # apt-get update & # apt-get upgrade, on a pas peur, un petit reboot de propreté pour finir et être sur que le Zpool remonte bien aussi ( on colle un dossier test dedans avant ... )
Si tout roule, on peu commencer à Jouer ..

Exploitation INDIESTOR
Sur l'indieServer on fait les Users et les Shares ( avec la GUI sur la Vs Free, mais il n'y a que 2 partages un simple avid-workspace et un public share dans un /indiestore-free. Sur la version Pro on peut faire autant de workspace que l'on veut & utiliser les quotas, mais la GUI n'est pas finie ).

ATTENTION, un truc qui n'est vraiment pas cool : Effacer le user qui crée le projet enlève le projet & les medias du workspace ( le .avid ou .shared !!!! ), donc il faut faire très gaffe avec les projets des users.

Pour finir sur les clients on tune aussi :
http://indiestor.com/avid-afp-tuner/
( ça règle les pbs :“project settings is not saved” (.avp will now save)“Exception: Resource temporarily unavailable” (.avp will not become stuck open) ) & sur PC
http://preptools.net ( ça tune aussi .. )

Pour monter le share de l'indie server sur les clients :
Mac: Cmd + K > afp://IP-OF-THE-SERVER/
Win: users can browse the server for shares and map drives by letter

Le véritable boulot : les projets Avid

Sur un ISIS ( Merci Guillaume !! )
Au niveau de l'ISIS on fait les users, les workspaces, les partages, blabla, les quotas, on met le clientISIS sur les MediaComp ( On ouvre automatique & on monte son workspace ). On crée ou copie un projet & une fois le projet ouvert, on bosse :
Le bin Blockbuster du projet Blockbuster-Cutter est ouvert en edit 1, il a la main dessus, le petit cadenas est vert, edit1 est ROOT dessus, il peut tout faire .


Quand le meme bin du projet est ouvert en edit 2, il voit la même chose, mais le petit cadenas est rouge, il peut piocher ce qu'il veut, mais s'il modifie quelque chose et qu'il veut refermer ce bin, au moment de le fermer, le Media Comp va lui proposer 2 choix :
- soit il sauve le bin sous un autre nom
- soit le bin n'est pas sauvé.
A noter que le bin ne s'update pas automatiquement si edit 1 fait une modif.
Il faut fermer et re-ouvrir le bin sur edit2 pour que celui ci voit les modifs.


De plus, avec un ISIS ( le stockage partagé avid trademark ) et un projet avid dessus :
- Dans le même projet, tu vois qui a ouvert les bins en premier.
Sur ma machine edit 2, je vois que edit 1 a ouvert le bin et le bin est en gras.

Bon alors evidemment :
- Parfois il arrive que meme si edit 1 a fermé le bin, il apparaisse toujours en gras sur edit 2.
Sinon c'est du bug référencé & ça sera corrigé dans la prochaine release mon bon monsieur .....
Le support est pas cher et les équipes sympa ;o)

Sur INDIESTOR
C'est à première vue moins souple ( enfin, c'est surtout pas comme ça fait 10 ans qu'on fait !!! comme openoffice c'est pas excel passque le bouton est pas à la même place !!!!! )

Une fois le workspace monté par le réseau et avoir fait un petit coup de console dans le mediacomp pour avoir alldisks en ecriture ( Commande AllDrives !!! ) si on veut mettre les medias file dessus.

Préambule !!!!
- Indiestor ne tente pas d'imiter directement le partage de projet d'Avid à base de lockfile & du petit cadenas, il ne ressemble pas en ce sens aux solutions comme Editshare, trucmuchshare etc, etc ....
- Pour déclencher le projet partagé , une Station Mediacomp doit tout simplement nommer le nouveau projet ( ou renommer un projet existant ) en : <nom du
projet> .avid
- Indiestor ne check que la racine de chaque workspace. Les Projets dans les sous-dossiers même en .avid ne seront pas partagés .

Exemple :
Les Users edit1, edit2 & edit3 partagent un workspace “base”. Quand il se connectent au storage, chaque user est filtré dans sont propre workspace ( qui est en fait un sous-dossier edit1,2 ou 3 sur le serveur debian mais c'est transparent coté clients ).
Edit1 crée un nouveau shared project a la racine du partage base_avid: /base_avid/testproject.avid/
dès qu'il détecte le .avid indiestor crée une copie .copy du projet pour edit2 et edit3. /base_avid/Avid Shared Projects/testproject.copy/ sur les espaces monté base_avid de edit2 et edit3
( Ok ds mes captures C'est blockbuster.avid et documentary_avid mais l'ID est Là ) 

Je suis edit1 :


Voila ce que voit edit2 dans son Workspace :


Le projet ouvert sur edit1 :


Le projet ouvert sur edit2 ( noter le .avid est un .copy sur edit2 ) :


Quel est le process sur le Travail :
- A la racine du projet les bins ne sont visibles que par leurs propriétaires ( edit1, 2 ou 3 )
- Dans Shared & ses sous-dossiers les bins sont visibles par tous mais éditable que par leurs propriétaires s'ils sont dans le dossier portant leur noms .
- Dans unprotected, on peut travailler tous dans les bins ( a Eviter ), ce dossier sert surtout pour se donner les bins car tous les users y ont accès en lecture/ecriture.

Bon Alors c'est juste des projets autonomes ?
De base, oui, mais reliés entre eux :
Même si chaque projet a ses propres ressources ( .avp , .avs , SearchDB etc ) les dossiers Shared avec les users sont générés automatiquement dans le projet suivant les users qui peuvent être fait à la volée & sont updatés & répliqués dans tous les projets .copy.

Ce partage est simple et il relie les projets ensembles, les updates sans manipulation des users.

Ainsi, en faisant simplement glisser un bin dans le Shared , il devient disponible dans les Projets de tous les users (en lecture seule suivant les dossiers ) .

Dans le Workspace le dossier AvidMediaFiles à la racine est commun.

Evidemment, il n'y a pas le petit cadenas !!!! Oulalalala : Drame ..

L'intérêt que j'y vois ( Hors le coût pour du projets partagés sous Avid!!! ) :
On peut tout à fait imaginer @ l'usage sur un projet un set d'utilisateurs par rapport aux métiers ( RUSHS - SYNCHRO - AUDIO - SYNTé ... etc, etc )
& un Set de monteurs ( A/B/C ..... )
Comme ça personne se marche sur les pieds & chacun fait son taff, ça ressemble de plus beaucoup à la manière de travail en coopération des monteurs sous Avid !!!
Je rajouterais tout de même un Admin qui démarre le projet & fait la maintenance comme ça personne ne risque de Buter le projet source en .avid ( qui effacerait les .copy dans le workspace des autres users )

Sinon pour bien comprendre :
http://indiestor.com/wp-content/uploads/2015/04/ AvidArchitectureExtendedTechnicalNotes.pdf ( qui explique bien comment ça fonctionne ) http://indiestor.com/wp-content/uploads/2015/04/IndiestorWindowsTuningGuide.pdf
La différence entre indiestor free & pro est que sur la vs pro on fait autant de workspace qu'on veut et il y a les quotas !

Petit Plus ( Mes bonnes Pratiques !! )
Déjà on clone le serveur une fois qu'il est fini ( un DD ça coute rien ... & après on peu recoller ça sur un PC même crouteux & ça fonctionne !! ) : http://clonezilla.org ( clef USB / démarrage/option de base -> Clone ) si l'original crash on a un Spare pour changer le système ou juste le stockage de place direct . Pour le stockage en ZFS on fait un export du pool car c'est écrit à la racine de ZFS & c'est plus facile pour un import sur un autre système .

Une soluce de backup est proposé sur le site indiestor ( je suis pas fan, je le trouve un peu compliqué, mais y'a moyen de le scripter pour le faire plutôt en local sur le serveur Indiestor ou de monter un point de partage d'un volume réseau automatiquement au démarrage du serveur et de faire le backup dessus, avantage du clonage documenté chez indiestor c'est que c'est du rsync ) : http://indiestor.com/how-to-backup-your-indiestor-server/

Sinon, à la place en local ou sur un point de partage :
Le petit script de backup ( c'est un cp, alors on ne copie que les projets & on imagine avoir les medias en backup ailleurs évidemment ( C un peu la base d'une bonne pratique, non ?? ) ) :
- A faire sur le serveur

#!/bin/bash
# Dump du projet avec DATE
cp -fR /tank/"nom de l'avid-workspace/Projet.avid" /Emplacement du backup/"Projet.avid".`date +%Y-%m-%d`
# Compression Effacement
cd /Emplacement du backup/
tar -cf "Projet.avid".`date +%Y-%m-%d`.tar "Projet.avid".`date +%Y-%m-%d`/
gzip "Projet.avid".`date +%Y-%m-%d`.tar
rm -fR "Projet.avid".`date +%Y-%m-%d`/
# Effacement des Fichiers de plus de 5 Jours
find /Emplacement du backup/ -type f -mtime +4 | xargs -r rm

Mettre Le script ds le CRON ( sous root ) #crontab -e
Backup à 1H am everyday:
0 1 * * * /path/to/backscript.sh

Voila, voila
c'est un peu partisan bien sur
Mais comme promouvoir FCP7 et decklink à l'époque ... hein !!!
J'èspère que ça vous a plu ( Dzlé pr les fautes, l'autocorrection tue ..... )

PS : Une considération sur le Prix
- Pour Tester : Un NUC i3, La ouache de RAM si ZFS, une tour Raid5 USB3 8To Utiles : 650 / 700 € Max, c'est jouable .
- En Prod : Un Shuttle avec SSD, RAM et Carte 10Gb, une tour Raid5 USB3 8To Utiles, Un Switch 10Gb/24 x 1Gb ( la tour USB3 sera le goulet d'etranglement ) : 2000 / 2500 € Max, ça doit être jouable en cherchant les prix .

& Sinon, un vieux PC de calcul qui ne sert plus avec un RAID0 en interne avec des vieux disques, ça fonctionne aussi ( c'est l'avantage de Linux ..... )

Aucun commentaire:

Enregistrer un commentaire