111
Facultat d’Inform ` atica de Barcelona UNIVERSITAT POLIT ` ECNICA DE CATALUNYA (UPC) BarcelonaTech TFG Implementaci´ o d’un sistema de compartici´ o de fitxers Autor: Aniol G` amiz Quer Director: Sergi Mor´ e Codina Ponent: Xavier Martorell Bofill Departament d’Arquitectura de Computadors

Facultat d’Informatica de Barcelona` UNIVERSITAT

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Facultat d’Informatica de Barcelona` UNIVERSITAT

Facultat d’Informatica de Barcelona

UNIVERSITAT POLITECNICA DE

CATALUNYA (UPC) BarcelonaTech

TFG

Implementacio d’un sistema de

comparticio de fitxers

Autor: Aniol Gamiz Quer

Director: Sergi More Codina

Ponent: Xavier Martorell Bofill

Departament d’Arquitectura de Computadors

Page 2: Facultat d’Informatica de Barcelona` UNIVERSITAT
Page 3: Facultat d’Informatica de Barcelona` UNIVERSITAT

ResumEn un centre de recerca com el BSC es va identificar que la comparticio de

fitxers no estava ben solucionada en el model implantat actualment. S’ha fet

una recerca entre diferents solucions i s’ha trobat que Nextcloud es el producte

que compleix mes requeriments pel que fa al producte que busquem. S’hi ha

realitzat un disseny del sistema final que inclou un backend i un frontend. El

backend esta compost pels diferents serveis que necessita la plataforma per fun-

cionar, que son Apache, MariaDB, PHP i Redis. Dintre del backend tambe hem

afegit un servei de Docker per poder executar un contenidor de paquets amb la

plataforma OnlyOffice de manera que els diferents usuaris de Nextcloud puguin

editar fitxers concurrentment. Tambe dintre del backend s’ha habilitat la con-

nexio amb el servidor de LDAP del centre per utilitzar els usuaris ja existents.

En la part del frontend tenim les diferents interfıcies web que es trobaran els

usuaris quan es connectin amb el navegador sigui per compartir arxius o per

poder editar documents.

S’ha realitzat el pas a produccio aplicant un monitoreig als diferents serveis de

manera que en cas d’alguna fallada ens salta una alarma i podem actuar en

consequencia.

Una vegada testejat amb usuaris s’ha comprovat que la majoria de requeriments

que tenıem al principi del projecte es compleixen correctament exceptuant dos

casos determinats: el bloqueig de fitxers no es suportat per aquesta plataforma

i el mapeig a Windows d’una unitat per protocol de xarxa DAV es problematic

perque la implementacio d’aquest protocol en Windows es defectuosa.

Finalment s’han fet diferents tests d’usuaris per comprovar que la interfıcie web

funciona correctament i tests d’escalabilitat comprovant mesures de rendiment

de CPU, memoria i xarxa per veure que l’aplicacio no carrega el servidor exces-

sivament.

Page 4: Facultat d’Informatica de Barcelona` UNIVERSITAT

ResumenEn un centro de investigacion como el BSC se identifico que la comparticion de

ficheros no estaba bien solventada en el modelo implantado actualmente. Se ha

hecho una busqueda de diferentes soluciones y se ha encontrado que Nextcloud

es el producto que cumple mas requisitos. Se ha realizado un diseno del sistema

final que incluye un backend y un frontend. El backend esta compuesto por los

diferentes servicios que necesita la plataforma para funcionar, que son Apache,

MariaDB, PHP y redis. Dentro del backend tambien hemos anadido un servicio

de Docker para poder ejecutar un contenidor de paquetes con la plataforma

OnlyOffice, de este modo los usuarios podran editar ficheros concurrentemen-

te. Tambien dentro del backend se ha habilitado la conexion con el servidor de

LDAP del centro para utilizar los usuarios ya existentes.

En la parte del frontend tenemos las diferentes interfaces web que se van a en-

contrar los usuarios cuando se conecten con el navegador sea para compartir

archivos o para editar documentos.

Se ha realizado el paso a produccion aplicando un monitoreo a los diferentes

servicios de modo que en caso de fallo de alguno de ellos nos va a saltar una

alarma y vamos a poder actuar en consecuencia.

Una vez testeado con usuarios se ha comprobado que la mayorıa de requeri-

mientos que tenıamos al principio del proyecto se cumplen correctamente ex-

ceptuando dos casos determinados: el bloqueo de ficheros no es soportado por

esta plataforma y el mapeo en Windows de una unidad por protocolo de red

DAV es problematico porque la implementacion de este protocolo en Windows

es defectuosa.

Finalmente se han hecho diversos tests de usuarios para comprobar que la in-

terfaz web funciona correctamente y otros de escalabilidad comprobando que

medidas de rendimiento de CPU, memoria y red para ver que la aplicacion no

carga el servidor excesivamente.

Page 5: Facultat d’Informatica de Barcelona` UNIVERSITAT

AbstractWe have identified that the file-sharing between users is not working correctly in

BSC. Research has been done between different solutions and it has been found

that Nextcloud is the product that fits best with our problem. The design of the

system includes the backend and the frontend. The backend is composed of all

the different services the platform needs to work, which are Apache, MariaDB,

PHP, and Redis. Inside backend, we can also find Docker service, to execute

OnlyOffice software where the users can edit concurrently among other users,

and connection to the LDAP server, where we take the information users.

Inside the frontend, we have different web interfaces that users found when they

connect to the system.

The transition to production has been done applying monitoring to the different

services so in the case one of them fails we will receive an alarm.

Once tested with users, we can say that the majority of the initial requirements

we had at the beginning of the project are fulfilled correctly except in two cer-

tain cases: file locking is not supported on this platform and network mapping

using the DAV protocol because of the implementation of this protocol in cer-

tain operating systems.

Finally, we’ve done many user tests to prove the web interface and some scala-

bility tests to check the status of CPU, memory, and network and see how the

system charge is affected.

Page 6: Facultat d’Informatica de Barcelona` UNIVERSITAT

Index

1 Introduccio 3

1.1 Context d’aplicacio . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Marc teoric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Problema a resoldre . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Actors implicats . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Justificacio 5

3 Abast 6

3.1 Objectiu principal . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Subobjectius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.1 Suport del servei . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.2 Obtenir feedbac constant . . . . . . . . . . . . . . . . . . 6

3.3 Requeriments funcionals . . . . . . . . . . . . . . . . . . . . . . . 6

3.3.1 Client Web . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.2 Edicio compartida de documents . . . . . . . . . . . . . . 7

3.3.3 Bloqueig de documents . . . . . . . . . . . . . . . . . . . 7

3.3.4 Muntatge local . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.5 Suport d’aplicacions desktop . . . . . . . . . . . . . . . . 7

3.3.6 Creacio d’espais compartits . . . . . . . . . . . . . . . . . 7

3.3.7 Quotes d’usuari i grup . . . . . . . . . . . . . . . . . . . . 7

3.3.8 Suport per autenticar-se . . . . . . . . . . . . . . . . . . . 7

3.3.9 Suport de grups per LDAP . . . . . . . . . . . . . . . . . 8

Page 7: Facultat d’Informatica de Barcelona` UNIVERSITAT

3.4 Possibles obstacles i riscos . . . . . . . . . . . . . . . . . . . . . . 8

4 Metodologia i rigor 8

4.1 Metodologia escollida . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.2 Seguiment del projecte . . . . . . . . . . . . . . . . . . . . . . . . 9

4.3 Metode de validacio . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Estimacio del temps necessari 9

6 Tasques 10

6.1 Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.2 Descripcio de les tasques . . . . . . . . . . . . . . . . . . . . . . . 11

6.3 Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 Gestio del risc 16

8 Pressupost 16

8.1 Identificacio dels costos . . . . . . . . . . . . . . . . . . . . . . . 16

8.1.1 Cost del personal . . . . . . . . . . . . . . . . . . . . . . . 16

8.1.2 Costos de les tasques . . . . . . . . . . . . . . . . . . . . . 17

8.1.3 Costos generics . . . . . . . . . . . . . . . . . . . . . . . . 18

8.1.4 Contingencies . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.1.5 Imprevistos . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.2 Cost final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

8.3 Control de gestio . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

9 Sostenibilitat 22

Page 8: Facultat d’Informatica de Barcelona` UNIVERSITAT

9.1 Reflexio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

9.2 Matriu de sostenibilitat . . . . . . . . . . . . . . . . . . . . . . . 22

9.3 Aspectes ambientals . . . . . . . . . . . . . . . . . . . . . . . . . 22

9.4 Aspectes economics . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.5 Aspectes socials . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

10 Desviacions 25

10.1 Canvis a les tasques del projecte . . . . . . . . . . . . . . . . . . 25

10.2 Canvis en els objectius del projecte . . . . . . . . . . . . . . . . . 26

11 Gestio de recursos 27

11.1 [T6] Obtencio dels recursos hardware . . . . . . . . . . . . . . . . 27

11.2 [T7] Obtencio dels recursos software . . . . . . . . . . . . . . . . 28

12 Disseny 29

12.1 Esquema de disseny . . . . . . . . . . . . . . . . . . . . . . . . . 29

12.2 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

12.3 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

13 Implementacio 32

13.1 [T8] Afegir el domini al DNS . . . . . . . . . . . . . . . . . . . . 32

13.2 [T9] Generacio dels certificats SSL . . . . . . . . . . . . . . . . . 32

13.3 [T10] Instal·lar el software al servidor . . . . . . . . . . . . . . . 33

13.3.1 Instal·lacio dels requisits de Nextcloud . . . . . . . . . . 34

13.3.2 Instal·lacio de Nextcloud . . . . . . . . . . . . . . . . . . 35

13.3.3 Configuracio d’Apache2 . . . . . . . . . . . . . . . . . . . 38

Page 9: Facultat d’Informatica de Barcelona` UNIVERSITAT

13.3.4 Instal·lacio d’OnlyOffice . . . . . . . . . . . . . . . . . . 40

13.4 Logica de l’autenticacio . . . . . . . . . . . . . . . . . . . . . . . 42

13.5 [T11] Integracio del software amb LDAP . . . . . . . . . . . . . . 43

13.6 [T12] Integracio del software amb el CAS del centre . . . . . . . 44

13.7 [T13] Optimitzacions del software . . . . . . . . . . . . . . . . . . 45

13.7.1 Configuracio del cron de PHP . . . . . . . . . . . . . . . . 45

13.7.2 Configuracio de la cache . . . . . . . . . . . . . . . . . . . 46

13.7.3 Backup de Nextcloud . . . . . . . . . . . . . . . . . . . . 48

13.8 Upgrade de la versio de Nextcloud . . . . . . . . . . . . . . . . . 49

14 Testing 53

14.1 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

14.1.1 Autenticacio: . . . . . . . . . . . . . . . . . . . . . . . . . 53

14.1.2 Sincronitzacio amb usuari de LDAP: . . . . . . . . . . . . 54

14.1.3 Pujada de fitxers: . . . . . . . . . . . . . . . . . . . . . . . 54

14.2 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

14.2.1 CPU i memoria: . . . . . . . . . . . . . . . . . . . . . . . 55

14.2.2 Xarxa: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

15 Passar el servei a produccio 63

15.1 Monitoritzacio dels serveis . . . . . . . . . . . . . . . . . . . . . . 63

15.2 Manteniment dels usuaris . . . . . . . . . . . . . . . . . . . . . . 65

16 Lleis i regulacions 66

17 Sostenibilitat 67

Page 10: Facultat d’Informatica de Barcelona` UNIVERSITAT

17.1 Aspectes ambientals . . . . . . . . . . . . . . . . . . . . . . . . . 67

17.2 Aspectes economics . . . . . . . . . . . . . . . . . . . . . . . . . . 68

17.3 Aspectes socials . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

18 Conclusions 71

18.1 Objectius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

18.2 Personalment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

18.3 Treball futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

18.4 Scripts utilitzats en el tests . . . . . . . . . . . . . . . . . . . . . 76

18.5 Taules de dades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Page 11: Facultat d’Informatica de Barcelona` UNIVERSITAT

Index de taules

1 Caracterıstiques dels diferents productes. Font: [8] . . . . . . . . 6

2 Tasques del projecte. Font: Propi . . . . . . . . . . . . . . . . . . 14

3 Costos d’un departament de sistemes. Font: Propi . . . . . . . . 17

4 Costos de les tasques. Font: Propi . . . . . . . . . . . . . . . . . 18

5 Costos d’infraestructures. Font: Propi . . . . . . . . . . . . . . . 19

6 Costos de hardware. Font: Propi . . . . . . . . . . . . . . . . . . 19

7 Costos generics. Font: Propi . . . . . . . . . . . . . . . . . . . . . 20

8 Costos de les contingencies Font: Propi . . . . . . . . . . . . . . 20

9 Costos dels imprevistos Font: Propi . . . . . . . . . . . . . . . . 20

10 Cost total del projecte Font: Propi . . . . . . . . . . . . . . . . . 21

11 Matriu de sostenibilitat. Font: [12] . . . . . . . . . . . . . . . . . 22

12 Tasques del projecte. Font: Propi . . . . . . . . . . . . . . . . . . 25

13 Matriu de sostenibilitat. Font: [12] . . . . . . . . . . . . . . . . . 67

15 Rendiment de la CPU amb en l’experiment 1 . . . . . . . . . . . 83

17 Rendiment de la memoria en l’experiment 1 . . . . . . . . . . . . 86

19 Rendiment de la CPU en l’experiment 2 . . . . . . . . . . . . . . 91

21 Rendiment de la memoria en l’experiment 2 . . . . . . . . . . . . 96

22 Ample de banda en l’experiment 3 . . . . . . . . . . . . . . . . . 96

Page 12: Facultat d’Informatica de Barcelona` UNIVERSITAT

Index de figures

1 Esquema de la metodologia d’un projecte - Font:Propi . . . . . . 9

2 Diagrama de Gantt-1 - Font:Propi . . . . . . . . . . . . . . . . . 15

3 Diagrama de Gantt-2 - Font:Propi . . . . . . . . . . . . . . . . . 15

4 Diagrama de Gantt-3 - Font:Propi . . . . . . . . . . . . . . . . . 15

5 Comandes per la descarrega del software - Font:Propi . . . . . . 28

6 Arquitectura del sistema - Font:Propi . . . . . . . . . . . . . . . 29

7 Estructura del registre del DNS - Font:Propi . . . . . . . . . . . 32

8 Estructura de la configuracio del certificat - Font:Propi . . . . . . 32

9 Comanda per generar el certificat xifrat - Font:Propi . . . . . . . 33

10 Comanda per generar el certificat desxifrat - Font:Propi . . . . . 33

11 Instal·lacio d’Apache2 - Font:Propi . . . . . . . . . . . . . . . . 34

12 Instal·lacio de MariaDB - Font:Propi . . . . . . . . . . . . . . . 34

13 Instal·lacio de MariaDB - Font:Propi . . . . . . . . . . . . . . . 35

14 Acces a MariaDB - Font:Propi . . . . . . . . . . . . . . . . . . . 35

15 Instal·lacio de paquets - Font:Propi . . . . . . . . . . . . . . . . 35

16 Instal·lacio de phpMyAdmin - Font:Propi . . . . . . . . . . . . . 35

17 Creacio de la taula a MariaDB - Font:Propi . . . . . . . . . . . . 36

18 Configuracio de PHP - Font:Propi . . . . . . . . . . . . . . . . . 36

19 Habilitacio dels diferents moduls d’Apache2 - Font:Propi . . . . . 37

20 Creacio del directori per emmagatzemar temporalment - Font:Propi 37

21 Desplegament dels arxius - Font:Propi . . . . . . . . . . . . . . . 37

22 Instal·lacio de Nextcloud - Font:Propi . . . . . . . . . . . . . . . 38

Page 13: Facultat d’Informatica de Barcelona` UNIVERSITAT

23 Configuracio de /etc/hosts - Font:Propi . . . . . . . . . . . . . . 38

24 Configuracio d’Apache2 - Font:Propi . . . . . . . . . . . . . . . . 39

25 Activacio de SSL a Apache2 - Font:Propi . . . . . . . . . . . . . 40

26 Redireccionament de ports a Docker - Font:Propi . . . . . . . . . 41

27 Configuracio del certificat a Docker - Font:Propi . . . . . . . . . 41

28 Aixecament dels contenidors Docker - Font:Propi . . . . . . . . . 41

29 Comprovacio dels contenidors Docker - Font:Propi . . . . . . . . 41

30 Contenidors executant-se - Font:Propi . . . . . . . . . . . . . . . 41

31 Instal·lacio de l’aplicacio que integra OnlyOffice a Nextcloud-

Font:Propi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

32 Configuracio d’OnlyOffice - Font:Propi . . . . . . . . . . . . . . . 42

33 Configuracio de l’aplicacio que integra LDAP - Font:Propi . . . . 43

34 Instal·lacio de l’aplicacio que integra el CAS - Font:Propi . . . . 44

35 Activacio de l’aplicacio del CAS - Font:Propi . . . . . . . . . . . 44

36 Configuracio de l’aplicacio del CAS - Font:Propi . . . . . . . . . 45

37 Configuracio del cron per l’usuari wwwrun - Font:Propi . . . . . 46

38 Instal·lacio de Redis - Font:Propi . . . . . . . . . . . . . . . . . 46

39 Configuracio de Redis - Font:Propi . . . . . . . . . . . . . . . . . 47

40 Configuracio de Nextcloud/Redis - Font:Propi . . . . . . . . . . . 47

41 Instal·lacio del modul de cache local de PHP - Font:Propi . . . 48

42 Configuracio d’OPcache per PHP - Font:Propi . . . . . . . . . . 48

43 Activacio del mode manteniment - Font:Propi . . . . . . . . . . . 48

44 Backup dels arxius del server - Font:Propi . . . . . . . . . . . . . 49

45 Backup de les dades dels usuaris - Font:Propi . . . . . . . . . . . 49

Page 14: Facultat d’Informatica de Barcelona` UNIVERSITAT

46 Backup de la base de dades - Font:Propi . . . . . . . . . . . . . . 49

47 Stop de Apache2 - Font:Propi . . . . . . . . . . . . . . . . . . . . 50

48 Stop del cron de l’usuari wwwrun - Font:Propi . . . . . . . . . . 50

49 Guardar les dades antigues del servidor - Font:Propi . . . . . . . 50

50 Descarrega de l’ultima versio - Font:Propi . . . . . . . . . . . . . 50

51 Manteniment del fitxer de configuracio antic - Font:Propi . . . . 50

52 Manteniment de les aplicacions instal·lades - Font:Propi . . . . 51

53 Manteniment dels permisos en els fitxers - Font:Propi . . . . . . 51

54 Restart d’Apache2 - Font:Propi . . . . . . . . . . . . . . . . . . . 51

55 Activacio del cron de l’usuari wwwrun - Font:Propi . . . . . . . . 51

56 Portal d’autenticacio del CAS - Font:Propi . . . . . . . . . . . . 53

57 Nextcloud - Font:Propi . . . . . . . . . . . . . . . . . . . . . . . . 54

58 Importacio de dades dels usuaris de LDAP - Font:Propi . . . . . 54

59 Fitxer pujat a Nextcloud - Font:Propi . . . . . . . . . . . . . . . 55

60 Quota d’usuari - Font:Propi . . . . . . . . . . . . . . . . . . . . . 55

61 Generacio dels fitxers d’1GByte corresponents - Font:Propi . . . 56

62 Carrega de la CPU amb 1 fitxer per usuari - Font:Propi . . . . . 57

63 Carrega de la memoria amb 1 fitxer per usuari - Font:Propi . . . 57

64 Carrega de la CPU amb 2 fitxers per usuari - Font:Propi . . . . . 60

65 Carrega de la memoria amb 2 fitxers per usuari - Font:Propi . . . 60

66 Ample de banda - Font:Propi . . . . . . . . . . . . . . . . . . . . 62

67 Check de Redis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

68 Check de MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

69 Check de Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 15: Facultat d’Informatica de Barcelona` UNIVERSITAT

70 Script per eliminar usuaris inexistents . . . . . . . . . . . . . . . 65

71 Extraccio de dades de memoria i CPU - Font:Propi . . . . . . . . 77

72 Generacio de la grafica de memoria - Font:Propi . . . . . . . . . 78

73 Generacio de la grafica de CPU - Font:Propi . . . . . . . . . . . . 78

74 Extraccio de dades d’ample de banda - Font:Propi . . . . . . . . 79

75 Generacio de la grafica d’ample de banda - Font:Propi . . . . . . 80

Page 16: Facultat d’Informatica de Barcelona` UNIVERSITAT

Glossari

• Backend: Es la part de l’arquitectura des d’on es gestiona el servei i

s’emmagatzema la informacio.

• CAS: Sigles de Central Authentication Service, es un protocol per centra-

litzar els logins d’un conjunt de serveis i oferir-lo en un mateix login i que

ens conservi les credencials [9].

• Certificat SSL: Es un fitxer que acredita l’autenticitat del servidor.

• Connexio SSH: Es un protocol per poder connectar a un servidor remot

via terminal.

• Cron: Es un servei de Linux per poder programar execucions de scripts.

• Diagrama de GANTT: Es una eina per poder fer un esquema del temps

i de les tasques a fer d’un projecte.

• DNS: Es un servidor que donat un nom ens torna l’adreca IP d’un servi-

dor.

• Frontend: El frontend es la part de l’aplicacio que interactua amb l’usu-

ari.

• HA: Sigles de High Availability, ens assegura que un sistema podra seguir

operant encara que falli.

• HDD: Son els discs durs fısics que en el nostre cas farem servir per em-

magatzemar les dades.

• LDAP: Sigles de Lightweight Directory Access Protocol, que es un protocol

que ens ofereix un servei de directori ordenat organitzat de manera logica

i jerarquica [4].

• Bloqueig de fitxers: Ens referim al fet que el sistema pugui bloquejar

un fitxer quan usuari estigui treballant-hi dintre.

• Maquina virtual (VM): Entorn de computacio hostejat i aıllat dintre

d’una maquina fısica.

1

Page 17: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Open source: Es el terme de codi lliure. Quan parlem de codi lliure

podem modificar el codi, podem executar-lo sota les circumstancies que

vulguem i podem redistribuir-lo.

• SAMBA: Es un sistema d’emmagatzematge de codi lliure.

• Script: Es un programa per l’automatitzacio d’un servei.

2

Page 18: Facultat d’Informatica de Barcelona` UNIVERSITAT

1 Introduccio

1.1 Context d’aplicacio

El projecte en questio es centra en el marc del Barcelona Supercomputing Cen-

ter - Centro Nacional de Supercomputacion (BSC-CNS) [1], que es un centre

situat a Barcelona especialitzat en High Performance Computing (HPC) i que

gestiona el Marenostrum, un dels supercomputadors mes potents d’Europa.

El BSC es actualment el centre que gestiona la RES (Xarxa Espanyola de Su-

percomputacio) i forma part de PRACE (Partnership for Advanced Computing

in Europe), amb un equip de mes de 700 persones distribuıdes en departaments

de recerca, operacions, gerencia i administracio.

Dintre del BSC, el departament d’operacions es qui s’encarrega de gestionar

tota l’infraestructura per aconseguir que les diferents maquines HPC siguin ac-

cessibles les 24 hores del dia durant els 365 dies de l’any. Tambe s’encarrega de

que els diferents serveis interns del centre estiguin sempre disponibles i es d’es

d’on es gestionara aquest nou servei.

Una de les practiques habituals dels investigadors es la creacio de projectes in-

terdepartamentals, pel que una eina com aquesta permetria la comparticio de

fitxers entre membres de diferents projectes. Aquest servei ha d’estar dispo-

nible internament i permetre la correcta fluidesa de fitxers entre el personal i

l’emmagatzematge de manera que s’hi pugui accedir remotament. El projecte

sera en modalitat B, la de practiques en empresa amb un conveni de cooperacio

educativa

1.2 Marc teoric

Un sistema de comparticio de fitxers es una eina que ens permet gestionar les

nostres dades emmagatzemades en un servidor i poder-les compartir amb dife-

rents usuaris. Aquest tipus d’eina utilitza l’arquitectura client - servidor.

L’arquitectura client servidor es un tipus d’arquitectura de sistemes distribuits

que es basa en que el servidor ofereix un servei i els clients l’usen mitjancant un

tipus de comunicacio request-reply entre els dos agents. [2]

3

Page 19: Facultat d’Informatica de Barcelona` UNIVERSITAT

L’autenticacio del servei que ens gestioni la comparticio de fitxers es fara mit-

jancant els usuaris de LDAP (Lightweight Directory Access Protocol), que es un

protocol que ens ofereix un servei a de directori ordenat organitzat de manera

logica i jerarquica [4] contra el CAS del BSC. El CAS (Central Authenticati-

on Service) es un protocol per centralitzar els logins d’un conjunt de serveis i

oferir-lo en un mateix login i que ens conservi les credencials [9].

El servei que volem reemplacar actualment es un Samba, que es un protocol que

ofereix un servei de sistema de fitxers i d’impressio. [5]

1.3 Problema a resoldre

La problematica del nostre cas decau en aspectes diferents: hem de trobar el

producte adequat que ens ofereixi solucio a totes les nostres dependencies i

que es pugui implementar al BSC. Aixo significa que hem de trobar una eina

ja desenvolupada amb versions estables i amb constant manteniment que ens

ofereixi un servei de comparticio i emmagatzematge de fitxers capac de substituir

l’actual Samba. L’entorn en que ha de treballar aquest servei ha de ser un

servidor, amb possibilitat de HA (High Availability) ja que el centre hi treballen

mes de 700 persones i ha de poder fer front a totes les caracterıstiques que ja te

el servidor Samba actualment i millorar el seu rendiment de cara a l’usuari.

1.4 Actors implicats

En aquest projecte tenim clarament tres actors diferenciats. Els primers son

aquells que instal·len el software al servidor i configuren, monitoritzen i posen

en produccio el servei. Aquestes primeres tasques recauen sobre el departament

d’operacions, que son qui controlen els servidors interns del centre.

La segona part implicada del projecte son els usuaris finals, aquells que mit-

jancant una interfıcie d’usuari en un navegador o en un directori muntat en un

PC han de poder accedir a l’emmagatzematge que tenen assignat al servidor.

Els ultims actors implicats son el Director del Projecte, Sergi More, el Ponent

del Projecte, Xavier Martorell i el Projectista, en aquest cas jo mateix, Aniol

4

Page 20: Facultat d’Informatica de Barcelona` UNIVERSITAT

Gamiz Quer.

2 Justificacio

En el nostre cas, no desenvolupem un producte nou perque seria fer feina de

mes ja que actualment al mercat existeixen una gran diversitat d’eines que te-

nen un objectiu molt similar al que tenim nosaltres i que son open source, per

tant buscarem una solucio ja existent que compleixi amb les nostres premises.

El que canviem respecte les solucions proposades es la forma d’implementar-ho,

ja que estem tenint en compte les caracterıstiques que te el centre i per tant

es particular per aquest. Fent una recerca de diferents opcions que no siguin

la que tenim actualment ara mateix al centre, hem pogut trobar eines que ens

ofereixen solucions que hem d’analitzar de quina manera compleixen els nostres

requisits, si es que ho fan. La majoria de productes que hem trobat desenvo-

lupats al mercat son o pretenen ser sistemes de comparticio de fitxers basats

en servidor, on hi ha l’storage de dades i on els clients a traves d’una aplicacio

Desktop o d’una aplicacio Web hi poden accedir, sincronitzar els seus fitxers

amb els de la web i treballar-hi.

El que hem trobat al mercat tenint en compte els requisits anteriors son Next-

cloud [3], Seafile [6] i Syncthing [7]. Els tres son sistemes de comparticio de

fitxers [8], pero Syncthing funciona amb connexions Peer to Peer entre clients,

per tant l’hem tret de la llista ja que volem que estigui centralitzat en un ser-

vidor. Seafile seria una bona opcio pero no totes les funcionalitats que ens pot

oferir son gratuıtes i s’han de pagar amb la versio enterprise, com per exemple

el bloqueig de fitxers per evitar que s’editin concurrentment o la sincronitzacio

amb els usuaris i grups de LDAP. Com que son features que necessitem, hem

de renunciar a aquestes dues possibilitats i centrar-nos amb Nextcloud ja que

te tot el codi Open Source.

5

Page 21: Facultat d’Informatica de Barcelona` UNIVERSITAT

NEXTCLOUD SEAFILE SYNCTHING

Tipus de host Server Server Peer To Peer

Llicencia Open source Open source/Enterprise Open source

Aplicacio Desktop Mac/Windows/Linux Mac/Windows/Linux Mac/Windows/Linux

Edicio de documents Si Versio Enterprise No

Connexio amb LDAP Si Si No

Taula 1: Caracterıstiques dels diferents productes. Font: [8]

3 Abast

3.1 Objectiu principal

L’objectiu del projecte es fer una avaluacio de les necessitats que te l’empresa

per a la implantacio d’un sistema de comparticio de fitxers de codi obert, veure

quines possibilitats tenim actualment, implementar-ho i finalment avaluar la

seva posada en produccio.

3.2 Subobjectius

3.2.1 Suport del servei

Mantenir un suport constant es un aspecte primordial ja que l’usuari final ha

de poder accedir en tot moment als seus arxius i ha de tenir garantida la no

perdua de dades.

3.2.2 Obtenir feedbac constant

Tenir diferents punts de vista dels usuaris finals i que ens diguin en tot moment

si el servei que els hi oferim els satisfa o no.

3.3 Requeriments funcionals

El projecte te una serie de requeriments no tant primordials pero tambe molt

importants que son les caracterıstiques que han acabat definint el producte

escollit.

6

Page 22: Facultat d’Informatica de Barcelona` UNIVERSITAT

3.3.1 Client Web

L’eina en questio ha de tenir un client web disponible per poder accedir-hi a

traves d’un navegador.

3.3.2 Edicio compartida de documents

S’ha de poder compartir un document amb diferents usuaris i que aquests el

puguin editar a la vegada sense problemes.

3.3.3 Bloqueig de documents

S’ha de poder compartir un document amb diferents usuaris i que un usuari el

bloquegi de manera que nomes el pugui editar un usuari atomicament.

3.3.4 Muntatge local

S’ha de poder muntar l’emmagatzematge compartit com una particio local del

nostre equip i poder-la mapejar en un directori.

3.3.5 Suport d’aplicacions desktop

Els usuaris han de poder instal·lar-se una aplicacio desktop en qualsevol dels

diferents sistemes operatius que s’usen al centre (Windows, MacOSX, Linux).

3.3.6 Creacio d’espais compartits

S’han de poder crear espais compartits entre els diferents usuaris per part dels

usuaris i per part dels administradors i permetre la gestio a traves de grups.

3.3.7 Quotes d’usuari i grup

S’han de poder definir quotes (lımits en l’us de dades) pels diferents usuaris i

grups per part dels administradors.

3.3.8 Suport per autenticar-se

S’ha de poder autenticar si es possible contra el servidor mitjancant CAS al

servei web i LDAP en el muntatge local.

7

Page 23: Facultat d’Informatica de Barcelona` UNIVERSITAT

3.3.9 Suport de grups per LDAP

S’ha de poder tenir les caracterıstiques dels grups que ja estan definides al

servidor de LDAP.

3.4 Possibles obstacles i riscos

Els possibles obstacles que ens podem anar trobant al llarg del desenvolupament

del projecte poden ser complexos i de severitat mes o menys crıtica.

Per comencar, ens podem trobar que la planificacio del projecte sigui incorrecta

i que el temps que tenim disponible per acabar el projecte sigui insuficient i

haguem de renunciar a certs requeriments.

Relacionat amb la mala planificacio, tambe ens podrıem trobar que l’eina que

ens proposem per posar en produccio no sigui l’adequada per al projecte o no

convenci a l’usuari final perque la funcionalitat que li dona no es l’esperada i

haguem de tornar al punt de partida i triar-ne una altra.

Tambe ens podem trobar amb que els desenvolupadors de l’eina en questio

deixin de donar manteniment i que per tant quedi obsolet i haguem de canviar

de sistema.

Tenint en compte tots aquests aspectes i els que segurament aniran sortint al

llarg del desenvolupament del projecte, s’aniran tractant per trobar-hi solucio i

poder tirar-ho tot endavant.

4 Metodologia i rigor

4.1 Metodologia escollida

La metodologia del projecte segueix el proces d’implementacio d’una tecnologia

nova. Per la correcta gestio de versions s’utilitza Git i les tasques a fer segueixen

el diagrama de Gantt i es gestiona amb Kanban per poder tenir-les controlades.

El curs que segueix el projecte es com el de la figura seguent:

8

Page 24: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 1: Esquema de la metodologia d’un projecte - Font:Propi

4.2 Seguiment del projecte

El seguiment del projecte es realitza amb reunions setmanals amb el Director

per comprovar l’estat en que es troba el desenvolupament del projecte. Tambe

es fan reunions cada dues setmanes amb el ponent per mirar si l’enfocament del

projecte es l’adequat.

4.3 Metode de validacio

El metode de validacio son les reunions amb el tutor i el ponent, de manera que

es valida si la feina que s’esta fent va en el camı correcte al que s’ha pressuposat

que es fara.

5 Estimacio del temps necessari

Un cop procedim a la gestio del temps dins del projecte, hem de poder definir

uns perıodes correctes que formaran un conjunt de dates que haure de seguir:

9

Page 25: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Data d’inici: 10 de febrer de 2020

• Data de finalitzacio: 31 de maig de 2020

• Duracio: La duracio aproximada es de 540 hores repartides entre imple-

mentar el projecte, fer reunions, elaborar el projecte i redactar tota la

documentacio. Aquestes 540 hores estan repartides aproximadament en-

tre 90 dies de treball.

• Data prevista de lectura: la data prevista de lectura es el dilluns 29 de

juny 2020.

• Nombre d’hores al dia: la carrega de treball diaria es de 6 hores.

6 Tasques

Pel compliment de les tasques es defineixen objectius. Per assegurar la bona

comunicacio amb el director del projecte es realitza mınim una reunio setmanal

de revisio general.

6.1 Recursos

Els recursos que es necessiten per realitzar el projecte son:

• Humans: Els grups de persones afectades o participants del projecte son:

– [P] Ponent del projecte: Es qui mira que el rumb que porta el pro-

jecte es el correcte, en aquest cas Xavier Martorell, del Departament

d’Arquitectura de Computadors.

– [CP] Cap de projecte / Director: Es qui gestiona que el desen-

volupament del projecte es du a terme correctament, en aquest cas

Sergi More, System Team Manager del BSC.

– [SO] Sysadmins i Operador: L’operador, en aquest cas jo mateix,

soc qui desenvolupa el projecte amb alguna part tutoritzada pels

Sysadmins del centre.

– [UF] Usuaris finals: Son els que veuen reflectit el servei en les seves

tasques rutinaries i l’utilitzen.

10

Page 26: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Fısics: Per la realitzacio del projecte necessitem un lloc de treball, en

aquest cas es la Capella de la Torre Girona del Campus Nord amb tots els

recursos necessaris com mobiliari, llum, aigua, telefon o Internet.

• Hardware: Per comencar, es necessari un PC per desenvolupar el pro-

jecte. Requerim tambe d’una maquina virtual allotjada en una maquina

fısica capac de suportar el servei 24/7. Aquesta maquina necessita de

connexio a internet i ha d’estar allotjada en un rack d’un CPD. Necessi-

tem una gran quantitat de discs fısics per a l’emmagatzematge i discs de

recanvi per realitzar manteniment.

• Software: Necessitem l’aplicacio escollida que realitza el servei, que es

Nextcloud, aixı com una eina de control de versions com pot ser GitLab

i una eina per gestionar les tasques, que sera Kanban. Per realitzar el

GANTT fem servir GanttProject.

6.2 Descripcio de les tasques

Per poder diferenciar les tasques, les hem dividit entre quatre subtipus. Cada

tipus de tasques esta marcat per la naturalesa de les tasques associades.

1. Planificacio

• [T1] Coneixement del BSC: Coneixer el funcionament del centre,

aixı com la metodologia de treball i les maquines. No requereix cap

tasca previa. 100h

• [T2] Abast i contextualitzacio: Conte l’abast i la contextualitza-

cio del projecte. No requereix cap tasca previa. 20h

• [T3] Planificacio temporal: Conte la planificacio temporal del

projecte. Requereix la tasca [T2]. 20h

• [T4]Gestio economica i sostenibilitat: Conte la gestio economica

i la sostenibilitat. Requereix les tasques [T2,T3]. 10h

• [T5]Planificacio final: Conte els tres documents anteriors finalit-

zats. Requereix les tasques [T2,T3,T4]. 15h

2. Gestio de recursos

11

Page 27: Facultat d’Informatica de Barcelona` UNIVERSITAT

• [T6] Obtencio dels recursos hardware: Demanar als sysadmins

una maquina virtual on poder desenvolupar el projecte. No requereix

cap tasca previa. 10h

• [T7] Obtencio dels recursos software: Descarregar el software a

la maquina virtual. Requereix la tasca [T6]. 2h

3. Implementacio

• [T8] Afegir el domini al DNS: Incloure al registre del DNS el

domini de la maquina. Requereix la tasca [T7]. 3h

• [T9] Generacio dels certificats SSL: Generar el certificat i in-

cloure’l a la maquina. Requereix la tasca [T8]. 3h

• [T10] Instal·lar el software al servidor: Un cop descarregat

el software podem procedir a la instal·lacio d’aquest al servidor.

Requereix la tasca [T9]. 10h

• [T11] Integracio del software amb LDAP: Connectar el servei

amb LDAP. Requereix la tasca [T10]. 20h

• [T12] Integracio del software amb el CAS: Connectar el servei

amb el servei d’autenticacio CAS. Requereix la tasca [T10]. 20h

• [T13] Optimitzacions del software: Afegir possibles modificaci-

ons al servei per aconseguir funcionalitats addicionals i un rendiment

millor. Requereix les tasques [T11,T12]. 15h

4. Testing

• [T14] Obrir el servei a testing: Passar el servei a test en un petit

entorn que emula la realitat per veure si el servei compleix amb els

requisits. Requereix les tasques [T8,T9,T10,T11,T12,T13]. 40h

• [T15] Seguiment de logs del servei: Revisar logs d’errors i veure

si el funcionament del servei es correcte. Requereix la tasca [T14].

20h

• [T16] Reunio de seguiment: Fer una reunio de seguiment amb el

ponent i el director del projecte. Requereix les tasques [T14,T15].

2h

12

Page 28: Facultat d’Informatica de Barcelona` UNIVERSITAT

5. Produccio

• [T17] Passar el servei a produccio: Obrir el servei al personal

del centre pel seu funcionament. Requereix la tasca [T16]. 30h

6. Documentacio

• [T18] Obtenir feedbac del projecte: Recopilacio de dades del

projecte i saber quin es el grau de satisfaccio de l’usuari amb el nou

servei implementat. Requereix les tasques [T17]. 40h

• [T19] Redactar la memoria del projecte: Redactar tota la in-

formacio del projecte. Es una tasca que es va fent al llarg del desen-

volupament del projecte, per tant les hores estan molt repartides.

Requereix la tasca [T18]. 100h

• [T20] Preparar la defensa de la lectura: Estudiar i preparar la

defensa del projecte davant del tribunal. Requereix la tasca [T18].

60h

13

Page 29: Facultat d’Informatica de Barcelona` UNIVERSITAT

TASCA HORES DEPENDENCIES PERSONAL

[T1] Coneixement del BSC 100h [CP] [SO]

[T2] Abast i contextualitzacio 20h [P] [CP]

[T3] Planificacio temporal 20h [T2] [P] [CP]

[T4] Gestio economica i sostenibilitat 10h [T2,T3] [P] [CP]

[T5] Planificacio final 15h [T2,T3,T4] [P] [CP]

[T6] Obtencio dels recursos hardware 10h [CP] [SO]

[T7] Obtencio dels recursos software 2h [T6] [CP] [SO]

[T8] Afegir el domini al DNS 3h [T7] [CP] [SO]

[T9] Generacio dels certificats SSL 3h [T8] [CP] [SO]

[T10] Instal·lar el software al servidor 10h [T9] [CP] [SO]

[T11] Integracio del software amb LDAP 20h [T10] [CP] [SO]

[T12] Integracio del software amb el CAS 20h [T10] [CP] [SO]

[T13] Optimitzacions del software 15h [T11,T12] [CP] [SO]

[T14] Obrir el servei a testing 40h [T8,T9,T10,T11,T12,T13] [CP] [SO]

[T15] Seguiment de logs del servei 20h [T14] [CP] [SO]

[T16] Reunio de seguiment 2h [T14,T15] [CP] [P]

[T17] Passar el servei a produccio 30h [T16] [CP] [SO] [UF]

[T18] Obtenir feedbac del projecte 40h [T17] [CP] [SO] [P] [UF]

[T19] Redactar la memoria del projecte 100h [T18] [SO]

[T20] Preparar la defensa de la lectura 60h [T18] [SO]

TOTAL 540h

Taula 2: Tasques del projecte. Font: Propi

6.3 Gantt

L’esquema de Gantt generat i esperat pel projecte es el seguent. Possiblement

hi hagi variacions de dates que puguin canviar per causes varies.

14

Page 30: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 2: Diagrama de Gantt-1 - Font:Propi

Figura 3: Diagrama de Gantt-2 - Font:Propi

Figura 4: Diagrama de Gantt-3 - Font:Propi

15

Page 31: Facultat d’Informatica de Barcelona` UNIVERSITAT

7 Gestio del risc

Fent mencio als possibles riscos definits a la primera entrega, trobem:

• Mala planificacio: En el cas que les hores destinades al projecte fossin

insuficients, s’ampliaria l’horari per part meva a casa. Addicionalment, si

no fos suficient es renunciaria a algun requeriment. La durada del projecte

no es veuria afectada, ja que ha d’estar acabat el dia 31 de maig, data en

que finalitza el meu contracte.

• Software incorrecte: En el cas que ens trobem que l’eina utilitzada no

compleix els requisits proposats, si som a temps de canviar de software

(aproximadament un mes despres del comencament del projecte), se’n pot

buscar una millor que compleixi els requisits. Si ha passat massa temps

(mes d’un mes), es suprimiran requeriments funcionals per poder arribar

al termini.

8 Pressupost

8.1 Identificacio dels costos

Per la realitzacio del pressupost del projecte, primer hem d’identificar els costos

dels recursos humans que anem tenint al llarg del desenvolupament per cada

tasca. Aquests costos venen donats pels sous dels empleats que tenen tasques

destinades en el projecte, pel que majoritariament sere jo.

8.1.1 Cost del personal

Tenint en compte el mercat laboral actual, s’ha fet una recerca a internet dels

costos d’un departament d’operacions. A la consultoria Payscale [13] hem trobat

que els costos incloent la seguretat social de les posicions en un departament

d’operacions d’una empresa que treballa amb sistemes son:

16

Page 32: Facultat d’Informatica de Barcelona` UNIVERSITAT

POSICIO COST PROMIG ANUAL COST PROMIG PER HORA

Systems Manager 79.596e 44,22e

SysAdmin 58.104e 32,28e

Junior SysAdmin 21.060e 11,7e

Taula 3: Costos d’un departament de sistemes. Font: Propi

8.1.2 Costos de les tasques

Tenint en compte els costos mencionats anteriorment i que la persona que re-

alitza les tasques esta en la posicio de Junior Sysadmin, podem fer un calcul

aproximat dels costos de les tasques ja definides en el document anterior.

17

Page 33: Facultat d’Informatica de Barcelona` UNIVERSITAT

TASCA HORES COSTOS

[T1] Coneixement de l’entorn de treball del BSC 100h 1170e

[T2] Abast i contextualitzacio 20h 234e

[T3] Planificacio temporal 20h 234e

[T4] Gestio economica i sostenibilitat 10h 117e

[T5] Planificacio final 15h 175,5e

[T6] Obtencio dels recursos hardware 10h 117e

[T7] Obtencio dels recursos software 2h 23,4e

[T8] Afegir el domini al DNS 3h 35,1e

[T9] Generacio dels certificats SSL 3h 35,1e

[T10] Instal·lar el software al servidor 10h 117e

[T11] Integracio del software amb LDAP 20h 234e

[T12] Integracio del software amb el CAS 20h 234e

[T13] Optimitzacions del software 15h 175,5e

[T14] Obrir el servei a testing 40h 468e

[T15] Seguiment de logs del servei 20h 234e

[T16] Reunio de seguiment 2h 23,4e

[T17] Passar el servei a produccio 30h 351e

[T18] Obtenir feedbac del projecte 40h 468e

[T19] Redactar la memoria del projecte 100h 1170e

[T20] Preparar la defensa de la lectura 60h 702e

TOTAL 540 6318e

Taula 4: Costos de les tasques. Font: Propi

8.1.3 Costos generics

Hi ha una serie de costos que tambe s’han de comptabilitzar en el nostre pro-

jecte. La majoria d’aquests no depenen de les hores d’us que els hi fem, sino

d’una quantitat fixa que s’haura d’abonar directament, com pot ser una factura.

Aquests costos es poden veure reflectits a la taula seguent, on:

• Infraestructura: Son els costos derivats del servei d’electricitat, lloguer

d’oficines, internet, manteniment, etc.

18

Page 34: Facultat d’Informatica de Barcelona` UNIVERSITAT

INFRAESTRUCTURA COST/ANY COST/HORA HORES COST

Lloguer 5000e 2,8e 540 1512e

Internet 500e 0,28e 540 151.2e

Electricitat 600e 0,3e 540 180e

Aigua 220e 0,12e 540 66e

TOTAL 1909,2e

Taula 5: Costos d’infraestructures. Font: Propi

• Hardware: El Hardware requerit pel projecte, on s’inclou el PC on tre-

ballo, la maquina virtual on s’allotja el servidor i els discos fısics d’emma-

gatzematge. Seguim una polıtica d’amortitzacio en quatre anys. Aproxi-

madament necessitarem 25 discs de 1TB a un preu de 300e cadascun +

500e de la controladora (maquina virtual).

HARDWARE PREU UNITATS COST/ANY COST/HORA HORES COST

PC 700e 1 175e 0,0972e 540 52,49e

Controladora 500e 1 125e 0,069e 540 37,26e

Discos fısics 300e 25 1875e 1,04e 540 561,6e

TOTAL 651,35e

Taula 6: Costos de hardware. Font: Propi

• Software: A l’utilitzar Nextcloud, estem fent servir un software Open Source

de manera que es gratuıt. Per treballar al meu PC ho fem amb Ubuntu que

tambe es gratuıt.

19

Page 35: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Cost generic total

PARTIDA COST

Infraestructura 1909,2e

Hardware 651,35e

Software 0e

TOTAL 2560,55e

Taula 7: Costos generics. Font: Propi

8.1.4 Contingencies

Es reserva un 15% del total del pressupost per possibles contingencies al llarg

del projecte.

PARTIDA COST CONTINGENCIA

Recursos humans 6318e 947,7e

Costos generics 2560,55e 384,1e

TOTAL 1331,8e

Taula 8: Costos de les contingencies Font: Propi

8.1.5 Imprevistos

Pel que fa als imprevistos, tenim que cada partida depen del pressupost al que

estigui assignat.IMPREVIST PARTIDA PROBABILITAT AUGMENT DEL TEMPS COST

Mala planificacio 6318 15% 25% 236.9e

Software incorrecte 2560,55 20% 20% 102.4e

TOTAL 339,3e

Taula 9: Costos dels imprevistos Font: Propi

20

Page 36: Facultat d’Informatica de Barcelona` UNIVERSITAT

8.2 Cost final

El cost final esperat sumant totes les partides que hem analitzat es de:

PARTIDA COST

Recursos humans 6318e

Costos generics 2560,55e

Contingencies 1331,8e

Imprevistos 339,3e

TOTAL 10.549,65e

Taula 10: Cost total del projecte Font: Propi

8.3 Control de gestio

Per fer un control del pressupost de manera que sigui correcte i no hi hagi

desviacions, es fan controls de com esta el projecte en la finalitzacio de cada

tasca. En el cas que hi hagi problemes amb el compliment de les tasques o

tinguem algun imprevist, es poden aplicar els plans de contingencia per mirar

de corregir el problema i que la desviacio no sigui crıtica.

Les desviacions poden venir donades per:

• Variacio del cost per hora: El cost per hora de l’empleat en questio

ha incrementat o a disminuıt respecte el que s’havia pressupostat.

• Variacio del nombre d’hores treballades: El nombre d’hores emple-

ades en realitzar una certa tasca ha augmentat o disminuıt respecte les

hores pressupostades.

• Variacio del preu d’un producte: El preu d’un producte pot variar

substancialment depenent de moltes variables que no controlem.

Per calcular la desviacio exacta podem calcular:

desviacio total = cost total estimat− cost total real (1)

Si la desviacio total es negativa haurem de fer servir les partides de con-

tingencies.

21

Page 37: Facultat d’Informatica de Barcelona` UNIVERSITAT

9 Sostenibilitat

9.1 Reflexio

Quan parlem de la realitzacio d’un projecte tecnologic on les Tecnologies de la

Informacio i la Comunicacio hi tinguin un paper important, cal no nomes pen-

sar en tots els possibles beneficis que tindra sobre l’empresa sino que tambe es

necessari analitzar quines implicacions tindra en la societat.

Abans de comencar el projecte, segurament soc poc conscient de quins efec-

tes tindra ambientalment, socialment i economicament, per tant s’ha de ga-

rantir que la seva realitzacio tingui el mınim impacte ambiental possible.

Economicament cal analitzar quines consequencies tindra la creacio d’un pro-

ducte mes car en l’augment de les desigualtats socials.

9.2 Matriu de sostenibilitat

La matriu de sostenibilitat seguent esta desenvolupada en la seccio seguent.

PARTIDA PPP VIDA UTIL

Ambiental [A-PPP] [A-VU]

Economic [E-PPP] [E-VU]

Social [S-PPP] [S-VU]

Taula 11: Matriu de sostenibilitat. Font: [12]

9.3 Aspectes ambientals

• [PPP] Has estimat l’impacte ambiental que tindra la realitzacio

del projecte? T’has plantejat minimitzar l’impacte, per exemple

reutilitzant recursos? [A-PPP] Encara no s’ha fet un estudi de l’impac-

te ambiental, pero el cost mes important sera el de la fabricacio dels discs

durs que haurem de comprar. Per minimitzar l’impacte generat podrem

reutilitzar discs que hi ha en altres serveis i que no estan obsolets.

• [Vida util] Com es resol actualment el problema que vols abordar

(estat de l’art)? En que millora ambientalment la teva solucio

a les existents? [A-VU] Actualment, per resoldre el problema d’una

22

Page 38: Facultat d’Informatica de Barcelona` UNIVERSITAT

manera senzilla podrıem contractar una empresa que ens mantingues el

servei i ho tingues al cloud. Per fer-ho d’una forma Open Source, la

millor manera es la que hem triat nosaltres. Ambientalment, el software

triat es mes eficient que l’anterior i per tant necessita menys recursos per

executar-se, tot i aixı te el cost d’una maquina virtual connectada a la

xarxa electrica les 24 hores del dia.

9.4 Aspectes economics

• [PPP] Has estimat el cost de realitzacio del projecte (recursos

humans i materials)? [E-PPP] Sı, el cost total es de 9617,96e, que

es un preu alt pero perfectament justificat per a un projecte d’aquestes

caracterıstiques.

• [Vida util] Com es resol el problema actualment que vols abordar

(estat de l’art)? En que millorara economicament la teva solucio

a les existents? [E-VU] Per a la vida util del projecte es necessari un

manteniment de la maquina virtual i dels discos de dades. La meva solucio

es economicament mes viable gracies al software Open Source, ja que es

gratuıt.

9.5 Aspectes socials

• [PPP] Que creus que t’aportara en l’ambit personal la realitzacio

d’aquest projecte? [S-PPP] Personalment crec que em donara una visio

del mon laboral de la gestio de serveis i l’aprenentatge d’aspectes tecnics

necessaris per poder procedir en aquest mon.

• [Vida util] Com es resol el problema actualment que vols abordar

(estat de l’art)? En que millorara socialment la teva solucio

a les existents? [S-VU] Actualment es fa servir un software privatiu

allotjat en un cloud, mentre que nosaltres el tindrem un emmagatzematge

local compartit. Implicara una millora en la comunicacio dins l’empresa

entre els investigadors perque puguin compartir fitxers mes facilment que

actualment.

23

Page 39: Facultat d’Informatica de Barcelona` UNIVERSITAT

• [Vida util] Existeix una necessitat real del projecte? Fins ara s’ha

tingut un altre sistema que ha anat solucionant el problema i per tant no

es totalment necessari.

24

Page 40: Facultat d’Informatica de Barcelona` UNIVERSITAT

10 Desviacions

10.1 Canvis a les tasques del projecte

L’ordre de les tasques ha variat substancialment degut a que mentre s’ha anat

implementant la solucio adoptada m’he trobat que era necessari realitzar algunes

tasques en un ordre diferent del que havia planejat inicialment. Aixo es tradueix

en que el nou ordre de les tasques es el seguent, on les que estan en negreta son

les que han canviat d’ordre

TASCA

[T1] Coneixement del BSC

[T2] Abast i contextualitzacio

[T3] Planificacio temporal

[T4] Gestio economica i sostenibilitat

[T5] Planificacio final

[T6] Obtencio dels recursos hardware

[T7] Obtencio dels recursos software

[T8] Afegir el domini al DNS

[T9] Generacio dels certificats SSL

[T10] Instal·lar el software al servidor

[T11] Integracio del software amb LDAP

[T12] Integracio del software amb el CAS

[T13] Optimitzacions del software

[T14] Obrir el servei a testing

[T15] Seguiment de logs del servei

[T16] Reunio de seguiment

[T17] Passar el servei a produccio

[T18] Obtenir feedbac del projecte

[T19] Redactar la memoria del projecte

[T20] Preparar la defensa de la lectura

Taula 12: Tasques del projecte. Font: Propi

25

Page 41: Facultat d’Informatica de Barcelona` UNIVERSITAT

10.2 Canvis en els objectius del projecte

A mesura que la implementacio ha anat avancant, s’ha vist que els objectius

i sub-objectius que es van determinar en la planificacio del projecte en gran

mesura es poden fer. L’unic cas que trobem que no podrem satisfer un requisit

sera el de poder bloquejar documents per a us exclusiu (requisit funcional 3.3.3).

L’unica opcio que hi ha i que tampoc no acaba de convencer es una aplicacio

que permet bloquejar fitxers a nivell de web, pero aquesta es l’unica part que ja

tenim resolta perque quan obrim un document via web se’ns obra amb Onlyoffice

i amb edicio compartida no hi ha problemes. La solucio en tot cas es intentar

editar els fitxers sempre que es pugui amb Onlyoffice, aixı ens assegurem que

en cas que algu altre editi el fitxer ens trobarem els dos usuaris editant-lo a la

vegada. Per ultim, afegir que quan mapegem els nostres directoris de Nextcloud

al nostre PC mitjancant l’aplicacio client (es a dir, que creem una copia local

que es va sincronitzant contra el servidor), quan dos persones obrin un fitxer

que tinguin compartit a la vegada es trobaran que quan un dels dos hagi fet un

canvi a l’altre li apareixera un fitxer de conflicte amb els canvis de l’altre.

26

Page 42: Facultat d’Informatica de Barcelona` UNIVERSITAT

11 Gestio de recursos

11.1 [T6] Obtencio dels recursos hardware

Per l’elaboracio del projecte necessitem un espai on instal·lar els nostres serveis.

Aquest espai es una maquina virtual i esta allotjada fısicament en un servidor de

maquines virtuals al mateix BSC. La nostra maquina te com a especificacions

inicials les seguents caracterıstiques:

• Distribucio Linux: Suse Linux Enterprise Server (SLES) 15.1 x86 64

GNU/Linux

• Memoria RAM: 8GB

• Cores: 4 a 2 GHz

• HDD: 100GB

• Connexio SSH: Activada amb sudo pel meu usuari

Totes aquestes especificacions son necessaries per poder procedir a la ins-

tal·lacio del software que usarem. Per la instal·lacio del software de Nextcloud

[14], els desenvolupadors ens recomanen els seguents prerequisits hardware:

• Sistema operatiu: SUSE Linux Enterprise Server 15

• Memoria RAM: Mınim 128MB, 512MB recomanats

Per al servei de l’edicio online de documents, necessitem instal·lar el Docu-

mentServer d’OnlyOffice. Es un software Open Source que podem instal·lar

al mateix servidor i que esta connectat amb Nextcloud de manera que l’edicio

de documents online es fa amb aquest altre servei. OnlyOffice [15] necessita les

seguents especificacions:

• Processador: frequencia de 2GHz o superior

• Memoria RAM: 2GB o mes

• Emmagatzematge: 40GB o mes

• Memoria SWAP: 4GB o mes

27

Page 43: Facultat d’Informatica de Barcelona` UNIVERSITAT

Com podem veure, per al servei d’OnlyOffice necessitem mes capacitat per al

servidor que la que necessita Nextcloud, pero amb les especificacions que hi hem

posat sera suficient. Un cop disposem de la maquina virtual podrem procedir a

la seguent tasca, en aquest cas la descarrega del software necessari a la maquina

virtual.

11.2 [T7] Obtencio dels recursos software

Per l’obtencio del software de Nextcloud tenim dos possibilitats:

• A traves dels repositoris d’SLES: Implica importar el repositori i

instal·lar-lo. El problema d’aquest metode es que no podem customitzar

el producte, per tant descartem aquesta possibilitat.

• Fer una instal·lacio manual: Implica anar a la pagina de descarregues

de Nextcloud i baixar-nos l’ultima versio estable del producte, en aquest

cas la 18.02.

Per la descarrega del software a la maquina, anirem a la pagina oficial de Next-

cloud i OnlyOffice i ens baixarem lels arxius

$ wget https://download.nextcloud.com/server/releases/

↪→ nextcloud-18.0.2.tar.bz2

$ wget https://raw.githubusercontent.com/ONLYOFFICE/

↪→ Docker-DocumentServer/master/docker-compose.yml

Figura 5: Comandes per la descarrega del software - Font:Propi

28

Page 44: Facultat d’Informatica de Barcelona` UNIVERSITAT

12 Disseny

En aquesta seccio s’explica l’arquitectura del sistema que volem portar a terme.

L’arquitectura consta d’un backend molt marcat des d’on es gestiona tot el servei

i un frontend web on els usuaris utilitzen les seves funcionalitats.

12.1 Esquema de disseny

La logica de tot aquest esquema es que quan entrem a Nextcloud ens redirigeix

a la interfıcie d’autenticacio unica del CAS i un cop fa la comprovacio ens torna

a Nextcloud i ja ens incorpora al sistema. Un cop dins, el nostre usuari fa match

amb l’usuari de la copia de la base de dades de LDAP que hi ha al servidor i

ens col·loca en els grups que toqui. Des d’aquı podem accedir al contingut dels

directoris del nostre departament, podem compartir fitxers amb altres usuaris i

podem editar documents mitjancant Onlyoffice.

Figura 6: Arquitectura del sistema - Font:Propi

29

Page 45: Facultat d’Informatica de Barcelona` UNIVERSITAT

12.2 Backend

El backend es la part de l’arquitectura des d’on es gestiona el servei i s’emma-

gatzema la informacio. La logica d’aquesta part de l’esquema es la seguent:

• Servidor opsnextcloud01: Es la maquina virtual on s’executa tota l’ar-

quitectura, conte tots els servidors i esta dintre de la xarxa interna del

BSC.

• MySQL: Es la base de dades interna on es guarden tots els parametres

de configuracio de Nextcloud i les seves aplicacions.

• Redis: Servidor per fer de cache local del servidor i optimitzar el frontend

web.

• Apache: Servidor web per publicar el frontend web.

• Docker: Servidor on s’executen tots els contenidors que necessita Onlyof-

fice.

– RabbitMQ: Servei de cua de missatges per comunicar aplicacions.

– Nginx: Servidor web per publicar el frontend web.

– Redis: Servidor per fer de cache local del servidor i optimitzar el

frontend web.

– PostgreSQL: Base de dades internes on es guarden tots els

parametres de configuracio d’Onlyoffice.

– Onlyoffice-data: Contenidor per guardar les dades d’Onlyoffice

– DocumentServer: Contenidor on corre el servidor de deocuments.

• Connectivitat amb LDAP: Aplicacio de Nextcloud que ens permet la

sincronitzacio amb els usuaris i grups de LDAP.

12.3 Frontend

El frontend es la part de l’aplicacio que interactua amb l’usuari. Les parts que

formen part del frontend son:

30

Page 46: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Interfıcie de login del CAS: Punt d’entrada dels usuaris a la platafor-

ma, un cop s’autentiquin contra el servidor del CAS son redirigits cap a

Nextcloud.

• Interfıcie Web https://nextcloud.bsc.es: Pagina inicial on els usuaris

poden compartir fitxers amb altres usuaris i desar-hi els seus documents.

Des d’aquı es pot accedir a la interfıcie web d’Onlyoffice quan haguem de

modificar documents en lınia.

31

Page 47: Facultat d’Informatica de Barcelona` UNIVERSITAT

13 Implementacio

13.1 [T8] Afegir el domini al DNS

Aquesta tasca abans era la numero [T11] i anava precedida per la instal·lacio

del software, la integracio amb LDAP i la integracio amb el CAS. S’ha vist que

aquest ordre no es correcte i que es necessari que primer s’afegeixi al DNS el

domini amb els seus alies perque un cop ens trobem amb la instal·lacio del

software veurem que es necessari tenir ja configurats els diferents dominis per

poder accedir-hi. La maquina opsnextcloud01.bsc.es sera el nom principal que

respon a la @IP mentre que els altres seran alies del primer.

opsnextcloud01 A @IP

nextcloud CNAME opsnextcloud01

onlyoffice.nextcloud CNAME opsnextcloud01

Figura 7: Estructura del registre del DNS - Font:Propi

13.2 [T9] Generacio dels certificats SSL

La generacio dels certificats SSL originalment era la tasca [T12] pero mentre

he estat fent el desenvolupament del projecte he vist que era necessari fer-ho

abans que tota la instal·lacio del software perque en la configuracio Apache2

necessito el certificat per poder redirigir el port :80 (HTTP) al :443 (https).

Per realitzar la generacio dels certificats hem de generar un fitxer amb extensio

.conf. Les caracterıstiques mes destacades del fitxer opsnextcloud01.bsc.es.conf

son:

0.commonName_default = opsnextcloud01.bsc.es

[alt_names]

DNS.1_default = opsnextcloud01.bsc.es

DNS.2_default = nextcloud.bsc.es

DNS.3_default = onlyoffice.nextcloud.bsc.es

DNS.4_default = of.nextcloud.bsc.es

Figura 8: Estructura de la configuracio del certificat - Font:Propi

32

Page 48: Facultat d’Informatica de Barcelona` UNIVERSITAT

Amb aquest fitxer generat podem crear el fitxer amb extensio.req, que es el que

ens servira per demanar que una entitat externa ens validin els dominis. Per

generar el fitxer amb extensio .req haurem de fer.

$ openssl req -new -config ./opsnextcloud01.bsc.es.conf -

↪→ out ./opsnextcloud01.bsc.es.req

Figura 9: Comanda per generar el certificat xifrat - Font:Propi

Aquesta comanda ens demana una clau i genera dos fitxers, el .req mencionat

anteriorment i un .key que sera la clau privada xifrada amb la clau que hem escrit

nosaltres. Per establir el certificat al servidor necessitem la clau desxifrada, ho

fem amb la comanda seguent, que ens torna a demanar la nostra clau per poder

desxifrar la clau privada i genera un fitxer .decrypt.key.

$ openssl rsa -in opsnextcloud01.bsc.es.key -out

↪→ opsnextcloud01.bsc.es.decrypt.key

Figura 10: Comanda per generar el certificat desxifrat - Font:Propi

Un cop tinguem tots aquests fitxers, podem procedir a demanar a l’entitat

externa que ens validin els dominis, per fer aixo nomes necessiten el fitxer .req.

En el nostre cas estem segurs que ens els validaran perque son dominis que

pengen d’un altre domini, en aquest cas bsc.es, ja validat anteriorment i que per

tant no hi haura cap problema. Quan ens hagin validat els dominis ens enviaran

un fitxer .zip amb dos fitxers .crt: la Certificate Authority (CA), que es el que

demostra que el domini estigui validat i un fitxer opsnextcloud01 bsc es.crt que

es el certificat en si mateix. Fem un SecureCopy(scp) des de la nostra maquina

del .zip que ens hauran enviat a dintre la maquina.

13.3 [T10] Instal·lar el software al servidor

Per realitzar la instal·lacio del software al servidor, hem d’instal·lar alguns

requisits previament. Aquests requisits son necessaris perque les aplicacions que

volem instal·lar (Nextcloud i OnlyOffice) es puguin desenvolupar i funcionar

correctament. Primer fem la instal·lacio de Nextcloud i els seus requisits i un

cop tinguem aixo duem a terme la instal·lacio de OnlyOffice i els seus requisits.

33

Page 49: Facultat d’Informatica de Barcelona` UNIVERSITAT

13.3.1 Instal·lacio dels requisits de Nextcloud

Els requisits per la instal·lacio de Nextcloud son els que ens marca el desenvo-

lupador. En el cas de Nextcloud [14], els requisits son els seguents:

• Base de dades: MySQL 5.6+ o MariaDB 5.5, 10.1+

• Servidor Web: Apache 2.4 amb mod php o php-fpm

• Processador Web: PHP runtime 7.3+

Aquests 3 elements junts a Linux es coneixen com a LAMP setup (Linux +

Apache + Mysql/MariaDB + PHP), son software Open Source que acostumen

a anar instal·lats junts per allotjar webs o webapps.

Tot aquest conjunt d’aplicacions els instal·lem a traves dels repositoris de SLES,

ja que estan disponibles i es la forma mes rapida d’instal·lar i un cop les tinguem

les personalitzem segons el que vulguem. El primer servei a instal·lar es Apache

i fem servir l’ultima versio, Apache2.

• Apache2: Per instal·lar i iniciar Apache2 nomes fara falta que fem:

$ sudo zypper install apache2

$ sudo systemctl start apache2

Figura 11: Instal·lacio d’Apache2 - Font:Propi

Per la realitzacio d’aquest projecte hem de tenir en compte que estem dintre

d’un departament d’operacions i que per tant ja disposem d’un firewall intern

del centre, per tant hem de deshabilitar els firewalls que la nostra maquina porta

incorporats i habilitar els ports :80, :8080 (http) i :443, :8443 (https) del firewall

central.

• MariaDB: Per instal·lar, habilitar i encendre la base de dades MariaDB farem:

$ sudo zypper in mariadb mariadb-tools

$ sudo systemctl start mysql

$ sudo systemctl enable mysql

Figura 12: Instal·lacio de MariaDB - Font:Propi

Per configurar la base de dades i crear l’usuari root fem servir un script del

mateix MySQL:

34

Page 50: Facultat d’Informatica de Barcelona` UNIVERSITAT

$ sudo mysql_secure_installation

$ sudo mysqladmin -u "USER" password 'PASSWORD'

Figura 13: Instal·lacio de MariaDB - Font:Propi

Un cop tinguem la base de dades configurada hi podem accedir fent:

$ sudo mysql -u "USER" -p

Figura 14: Acces a MariaDB - Font:Propi

• PHP7: Per instal·lar i habilitar PHP7 i tots els complements que necessita

fem:

$ sudo zypper in php7 php7-mysql apache2-mod_php7

↪→ php7-exif php7-gd php7-json php7-fpm php7-curl

↪→ php7-intl php7-mcrypt php7-zip php7-mbstring

↪→ php7-zlib php7-openssl php7-fileinfo php7-

↪→ pcntl php7-posix php-ldap

$ sudo a2enmod php7

Figura 15: Instal·lacio de paquets - Font:Propi

Finalment, instal·lem phpMyAdmin, que es una eina per administrar una base

de dades des d’una interfıcie Web:

$ sudo zypper in phpMyAdmin

Figura 16: Instal·lacio de phpMyAdmin - Font:Propi

Un cop instal·lat podem accedir-hi anant al navegador a l’adreca

@IP/phpMyAdmin

Arribats a aquest punt, tenim tots els pre-requisits instal·lats al servidor i

podem procedir a la instal·lacio de Nextcloud.

13.3.2 Instal·lacio de Nextcloud

Per la instal·lacio de Nextcloud necessitem una taula a la base de dades on

guardar dades del servei, per tant un cop dins de MariaDB creem la base de

dades convenient, creem l’usuari que fara servir nextcloud per accedir-hi i l’hi

donem privilegis sobre la base de dades.

35

Page 51: Facultat d’Informatica de Barcelona` UNIVERSITAT

$ create database nextcloud;

$ create user "USER"@localhost identified by 'PASSWORD'

$ grant all privileges on nextcloud.* to "USER"@localhost

↪→ identified by 'PASSWORD';

Figura 17: Creacio de la taula a MariaDB - Font:Propi

Tambe s’ha de modificar la configuracio de PHP per escalar la mida dels arxius

a pujar, la mida de les pujades i poder obtar a mes memoria. Apliquem els

canvis seguents al fitxer /etc/php7/apache2/php.ini

post_max_size = 50G

upload_max_filesize = 25G

max_file_uploads = 200

max_input_time = 3600

max_execution_time = 3600

session.gc_maxlifetime = 3600

memory_limit = 512M

Figura 18: Configuracio de PHP - Font:Propi

Hem d’habilitar els moduls d’Apache2 instal·lats per poder disposar d’ells. Cal

destacar en ells el modul que permet php i el modul que permet ssl, que es la

manera que el servei pugui correr al port :443 i pugui tenir una connexio segura

mitjancant HTTPS.

$ a2enmod php7

$ a2enmod rewrite

$ a2enmod headers

$ a2enmod env

$ a2enmod dir

$ a2enmod mime

$ a2enmod ssl

$ a2enmod proxy

$ a2enmod proxy_wstunnel

$ a2enmod proxy_http

$ a2enmod headers

36

Page 52: Facultat d’Informatica de Barcelona` UNIVERSITAT

$ a2enmod proxy_balancer

$ a2enmod lbmethod_byrequests

$ systemctl restart apache2

Figura 19: Habilitacio dels diferents moduls d’Apache2 - Font:Propi

S’ha de definir un directori on es guarden les dades temporalment, ja que en un

futur aniran al servidor de discs que tenim al BSC. De moment aquı es fan les

proves de com funciona tot el sistema i un cop es vegi que es pot passar a l’emma-

gatzematge principal es portara alla. Per fer aixo, creem un directori directori

anomenat nextcloud data i li donem permisos de lectura/escriptura/execucio a

l’usuari wwwrun1, que sera el propietari del directori.

$ mkdir "DADES NEXTCLOUD"/nextcloud_data

$ chmod -R 0770 "DADES NEXTCLOUD"/nextcloud_data

$ chown wwwrun "DADES NEXTCLOUD"/nextcloud_data

Figura 20: Creacio del directori per emmagatzemar temporalment - Font:Propi

Un cop aquı podem procedir a moure l’arxiu comprimit que hem descarregat

inicialment, a desempaquetar-lo al directori del servidor i canviar recursivament

el propietari de tot el directori i dels arxius que pengen d’ell a l’usuari wwwrun.

$ cd "DIRECTORI SERVER"

$ mv nextcloud-18.0.2.tar.bz2 "DIRECTORI SERVIDOR"

$ tar xjf nextcloud-18.0.2.tar.bz2

$ chown -R wwwrun "DIRECTORI SERVIDOR"

Figura 21: Desplegament dels arxius - Font:Propi

Quan ja tinguem la carpeta de Nextcloud desplegada amb els seus arxius desem-

paquetada podem procedir a la instal·lacio. Aquesta vegada, per simplificar les

coses la farem a traves de l’interfıcie grafica. Podem accedir al nostre navegador

a @IP/nextcloud i alla posarem les dades que ens demana per la instal·lacio:

• Data directory: ”DADES NEXTCLOUD”/nextcloud data

• Database user: l’usuari a qui hem donat permisos sobre la base de dades

Nextcloudb, en aquest cas ncuser1wwwrun es l’usuari a SLES que es connecta des de la interfıcie web

37

Page 53: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Database name: el nom de la base de dades, en aquest cas nextcloudb

• Database password: la contrasenya de l’usuari per accedir la base de

dades

Figura 22: Instal·lacio de Nextcloud - Font:Propi

Hem d’esperar uns instants perque s’acabi la instal·lacio. Un cop hagi acabat

ens demana de crear un usuari administrador per poder gestionar tota la

interfıcie grafica.

13.3.3 Configuracio d’Apache2

Per modificar la configuracio d’Apache hem de modificar el fitxer /etc/hosts i

afegir-li els alies que hem donat d’alta al DNS.

127.0.0.1 localhost opsnextcloud01.bsc.es nextcloud.bsc.es

↪→ onlyoffice.nextcloud.bsc.es of.nextcloud.bsc.es

Figura 23: Configuracio de /etc/hosts - Font:Propi

Un cop tenim modificat aquest fitxer podem passar ja a la configuracio d’Apache,

que esta a /etc/apache2. Dintre d’aquest directori podem identificar els diferents

fitxers de configuracio globals d’Apache, que ja estan preparats per defecte

perque nosaltres com a usuaris puguem afegir altres fitxers dinamicament i el

servei els incorpori a la seva configuracio havent nomes de fer un restart del

servei.

Abans de modificar la configuracio d’Apache descomprimim i movem els arxius

dels certificats cap als directoris preparats pels certificats.

Anirem al directori vhosts.d i observem que hi ha arxius amb extensio .template

preparats perque els fem servir de plantilla. En aquest directori es on han d’estar

configurats els Virtual Hosts (vhost). Els vhosts es la manera que te Apache de

poder agregar diferents servidors webs a traves de dominis des d’una mateixa

adreca @IP.

Creem un fitxer anomenat nextcloud.conf i el configurem de la seguent manera:

<VirtualHost *:80>

ServerName nextcloud.bsc.es

38

Page 54: Facultat d’Informatica de Barcelona` UNIVERSITAT

ServerAlias opsnextcloud01.bsc.es

ErrorLog "DIRECTORI DE LOGS"

CustomLog "DIRECTORI DE LOGS" combined

Redirect / https://nextcloud.bsc.es

</VirtualHost>

<VirtualHost *:443>

# SSL Configuration

SSLEngine on

SSLCertificateFile "DIRECTORI DEL CERTIFICAT"

SSLCertificateKeyFile "DIRECTORI DEL CERTIFICAT"

SSLCertificateChainFile "DIRECTORI DEL CERTIFICAT"

ServerName nextcloud.bsc.es

ServerAlias opsnextcloud01.bsc.es

DocumentRoot "DIRECTORI DEL SERVIDOR"

ErrorLog "DIRECTORI DE LOGS"

CustomLog "DIRECTORI DE LOGS" combined

</VirtualHost>

Figura 24: Configuracio d’Apache2 - Font:Propi

A la primera part configurem perque el vhost escolti al port :80, posem els dos

noms un com a principal i l’altre com alies, redireccionem els logs al directori

de logs de linux i redirigim el servei a https://nextcloud.bsc.es, o el que es el

mateix, al port :443.

A la segona part configurem el vhost perque escolti al port :443, activem SSL

perque puguem fer connexions segures i l’hi indiquem el directori dels diferents

arxius del certificat: el certificat, la clau desencriptada (li hem canviat el nom

a .key) i la CA del certificat. A DocumentRoot fiquem el directori on hi ha els

arxius de Nextcloud i tambe especifiquem els directoris dels arxius de logs del

sistema.

Per ultim ens falta canviar un fitxer de configuracio a /etc/sysconfig/apache2

39

Page 55: Facultat d’Informatica de Barcelona` UNIVERSITAT

APACHE_SERVER_FLAGS="SSL"

Figura 25: Activacio de SSL a Apache2 - Font:Propi

Amb aquest canvi i reiniciant Apache, Nextcloud hauria d’estar corrent a tot el

domini bsc.es.

13.3.4 Instal·lacio d’OnlyOffice

Els requisits per la instal·lacio del DocumentServer d’Onlyoffice son el que ens

marca el desenvolupador. En aquest cas[15], els requisits son els seguents:

• Server de containers: Docker 1.10 o superior

En aquest cas fem servir Docker amb l’eina Docker-compose, que ens serveix per

poder aixecar diferents contenidors amb els serveis que necessitem a la vegada,

amb els requeriments ja especificats al fitxer de configuracio i preparat perque

els diferents contenidors parlin entre ells. Aquest docker-compose contindra els

seguents serveis:

• Server WEB: haproxy 1.5.1

• Base de dades: Postgresql 9.5

• Cua de missatges: Rabbitmq

• Base de dades cache: Redis

• Imatge del servidor de documents: onlyoffice-documentserver-data

Com podem veure, hi ha dos servidors web funcionant al mateix moment, el

que serveix Nextcloud i el que serveix Onlyoffice, aquest ultim pero s’executa

dintre d’un contenidor. En tenir dos serveis que tenen la mateix utilitat, els

haurem de posar a escoltar a ports diferents perque no puguin col·lisionar un

amb l’altre. Fem que Apache escolti als ports :80 i :443 com ja feia anteriorment

i haproxy escolta als ports :80 i :443 de dins el contenidor mentre docker porta

aquests ports al :8080 i :8443 perque no coincideixin.

ports:

- '8080:80'

40

Page 56: Facultat d’Informatica de Barcelona` UNIVERSITAT

- '8443:443'

- '1936:1936'

Figura 26: Redireccionament de ports a Docker - Font:Propi

Hem de canviar la configuracio perque utilitzi HTTPS, faci correctament la

redireccio de HTTP a HTTPS i especificar el directori del certificat.

ports:

- FORCE_SSL=true

- CERT_FOLDER=/certs/

- "DIRECTORI CERTIFICAT"/cert1.pem

Figura 27: Configuracio del certificat a Docker - Font:Propi

Per generar el fitxer onlyoffice.pem necessitem els tres arxius seguents, que son

els mateixos fets servir anteriorment en la instal·lacio d’Apache. En aquest cas

generem un fitxer .pem fent una concatenacio dels tres fitxers de manera que

els contindra els tres i l’ubicarem en el directori dels certificats.

Per executar els contenidors de docker farem:

$sudo docker-compose up -d

Figura 28: Aixecament dels contenidors Docker - Font:Propi

Aquesta ordre fara que es descarreguin totes les imatges necessaries i s’iniciın.

Per comprovar que s’esta executant correctament podem fer:

$opsnextcloud01:˜ # docker-compose ps

Figura 29: Comprovacio dels contenidors Docker - Font:Propi

Figura 30: Contenidors executant-se - Font:Propi

En la figura anterior podem observar com la redireccio dels ports es fa correcta-

ment. Un cop tinguem el DocumentServer corrent hem d’instal·lar l’aplicacio

41

Page 57: Facultat d’Informatica de Barcelona` UNIVERSITAT

que integra el servei d’OnlyOffice a Nextcloud. Per fer-ho ens desplacem al

directori d’aplicacions de Nextcloud, ens baixem els arxius de la pagina oficial

[20] i canviem els permisos del directori.

$ git clone https://github.com/ONLYOFFICE/onlyoffice-

↪→ nextcloud.git onlyoffice

chown -R wwwrun:www onlyoffice

Figura 31: Instal·lacio de l’aplicacio que integra OnlyOffice a Nextcloud- Font:Propi

Per poder treballar amb OnlyOffice nomes falta activar l’aplicacio al frontend

Web i configurar Nextcloud perque apunti al servidor de documents ubicat a

https://nextcloud.bsc.es:8443.

https://nextcloud.bsc.es/index.php/settings/apps?category=

↪→ enabled

https://nextcloud.bsc.es/index.php/settings/admin/

↪→ onlyoffice

Figura 32: Configuracio d’OnlyOffice - Font:Propi

13.4 Logica de l’autenticacio

L’autenticacio al servei de Nextcloud s’ha de fer cada vegada que hi entrem. La

logica del funcionament que s’ha dissenyat per autenticar-se es el resultat de

dues aplicacions que treballen conjuntament. L’objectiu d’utilitzar els servidors

del CAS i LDAP es poder-nos autenticar mitjancant el servei que ja hi ha actu-

alment en funcionament al centre que ens permet de fer login amb uns usuaris

ja definits anteriorment en aquest servidor i disposar de directoris compartits

amb grups de treball ja definits pels usuaris de LDAP.

Quan escrivim la URL del nostre servidor, ens redirecciona al servidor del CAS

del centre i mitjancant aquest ens autentica. Un cop autenticats ens redirigeix a

la instancia de Nextcloud amb l’usuari de LDAP corresponent. Aixo es gracies

al fet que el token d’autenticacio provinent del CAS porta el nom d’usuari i

veu que aquest nom d’usuari ja existeix a la base de dades perque el servidor

de LDAP haura bolcat previament tots els usuaris amb els seus usernames i

per tant es connecta amb aquest usuari agregant tota la informacio de LDAP

42

Page 58: Facultat d’Informatica de Barcelona` UNIVERSITAT

pertinent.

13.5 [T11] Integracio del software amb LDAP

Per la integracio de Nextcloud amb el servidor de LDAP del BSC utilitzem la

aplicacio user ldap que ja ve instal·lada per defecte en la seva ultima versio.

Els parametre de configuracio que utilitzem son els seguents:

| user_ldap | s01ldap_attributes_for_user_search | uid |

↪→ mail |

| user_ldap | s01ldap_base | "BASE DN" |

| user_ldap | s01ldap_base_groups | "BASE DN GROUP" |

| user_ldap | s01ldap_base_users | "BASE DN USER" |

| user_ldap | s01ldap_configuration_active | 1 |

| user_ldap | s01ldap_display_name | uid |

| user_ldap | s01ldap_dynamic_group_member_url | "DYNAMIC

↪→ GROUP MEMBER" |

| user_ldap | s01ldap_email_attr | mail |

| user_ldap | s01ldap_expert_username_attr | uid |

| user_ldap | s01ldap_gid_number | gidNumber |

| user_ldap | s01ldap_group_display_name | cn |

| user_ldap | s01ldap_group_filter | "GROUP FILTER" |

| user_ldap | s01ldap_group_member_assoc_attribute |

↪→ memberUid |

| user_ldap | s01ldap_host | "SERVER LDAP BSC" |

| user_ldap | s01ldap_login_filter | "LDAP LOGIN FILTER" |

| user_ldap | s01ldap_userfilter_objectclass | "LDAP USER

↪→ FILTER" |

| user_ldap | s01ldap_userlist_filter | "LDAP USER LIST

↪→ FILTER" |

Figura 33: Configuracio de l’aplicacio que integra LDAP - Font:Propi

Els mes importants son:

• s01ldap base: Consulta que ha de fer al servidor de ldap per obtenir els

directoris amb informacio que realment ens interessen.

43

Page 59: Facultat d’Informatica de Barcelona` UNIVERSITAT

• s01ldap dynamic group member url: Es la configuracio perque dis-

tingeixi els membres de cada grup com a memberUid

• s01ldap group filter: Es el filtre perque ens agafi els grups que siguin

un objecte del tipus sambaGroupMapping i posixGroup.

• s01ldap host: Es el server on fem la consulta SQL, en aquest cas el server

de LDAP del BSC.

• s01ldap userfilter objectclass: Es el filtre perque ens agafi els usuaris

que siguin un objecte dels tipus especificats.

Un cop tinguem tota aquesta configuracio afegida ens connecta amb el servidor

de ldap i importa tots els usuaris, grups i les relacions entre usuaris i grups de

la base de dades.

13.6 [T12] Integracio del software amb el CAS del centre

Per la integracio de Nextcloud amb el CAS utilitzem user cas [21], ja desenvo-

lupada per Nextcloud que ens proporciona el nostre objectiu. Aquesta aplicacio

ja porta la integracio dels dos serveis que volem incorporar.

Primer de tot ens baixem l’arxiu del repositori Git al directori d’aplicacions de

Nextcloud, descomprimim l’arxiu i li donem permisos a l’usuari Web.

$ wget https://github.com/felixrupp/user_cas/releases/

↪→ download/1.8.4/user_cas-nextcloud-with-phpcas.tar.gz

$ tar -xzvf user_cas-nextcloud-with-phpcas.tar.gz

$ chown -R wwwrun user_cas/

Figura 34: Instal·lacio de l’aplicacio que integra el CAS - Font:Propi

Un cop tinguem l’aplicacio descarregada falta activar l’aplicacio, com hem fet

anteriorment amb OnlyOffice, i configurar els servidors on volem fer les consultes

cada vegada que entrem.

https://nextcloud.bsc.es/index.php/settings/apps?category=

↪→ enabled

Figura 35: Activacio de l’aplicacio del CAS - Font:Propi

44

Page 60: Facultat d’Informatica de Barcelona` UNIVERSITAT

Per configurar l’autenticacio del CAS haurem de definir el host al que ens dirigim

i alguns dels seus atributs.

| user_cas | cas_server_hostname | "SERVER CAS BSC" |

| user_cas | cas_server_path | /cas |

| user_cas | cas_autocreate | 0 |

| user_cas | cas_update_user_data | 0 |

Figura 36: Configuracio de l’aplicacio del CAS - Font:Propi

On,

• cas server hostname: Es el nom del servidor del CAS del centre.

• cas server path: Es la ubicacio dintre del server on trobem l’aplicacio

d’autenticacio

• cas autocreate: Ens indica que la primera vegada que ens autentiquem

amb un usuari via el CAS ens creara un usuari local a la base de dades

de Nextcloud amb els atributs que rep via CAS. Ho desactivem perque ja

ens haura creat els usuaris amb LDAP i no volem que ens els repliqui.

• cas update user data: Si esta activat cada vegada que entrem via el

CAS fa un check de les dades que te a la base de dades de l’usuari local

i comprova que siguin les mateixes que rep del CAS, en cas que siguin

diferents actualitza la base de dades amb les noves que rep. Ho desactivem

perque volem que faci l’update de les dades en cas que sigui necessari a

traves de LDAP.

13.7 [T13] Optimitzacions del software

En aquest apartat el que s’intenta es optimitzar el servei amb algunes eines ja

predefinides que han d’ajudar a fer que el software en general vagi millor. Fem

dues modificacions, que seran les explicades a continuacio.

13.7.1 Configuracio del cron de PHP

La primera modificacio es afegir un cron manual al sistema de cron de Linux

per l’usuari web, en aquest cas wwwrun. L’objectiu d’aquest cron es fer que s’e-

xecutin tasques automaticament sense la supervisio de ningu, com per exemple

45

Page 61: Facultat d’Informatica de Barcelona` UNIVERSITAT

executar eliminar fitxers temporals que hagin quedat o buscar noves versions

d’aplicacions que puguem instal·lar. Per fer-ho editem el fitxer de cron de

l’usuari wwwrun:

$ crontab -u wwwrun -e

*/5 * * * * php -f "DIRECTORI SERVER"/cron.php

Figura 37: Configuracio del cron per l’usuari wwwrun - Font:Propi

Afegint aquesta lınia fara que s’executi cron.php cada cinc minuts.

13.7.2 Configuracio de la cache

Redis [23] es una base de dades en memoria que guarda els objectes mes frequent-

ment demanats en memoria i gracies a aixo redueix els temps d’espera i aug-

menta la performance. Per configurar Redis ens hem de baixar el software via

repositori de SLES aixı com tambe el paquet de PHP que integra Redis.

$ zypper install redis

$ zypper install php7-redis

Figura 38: Instal·lacio de Redis - Font:Propi

Modifiquem el fitxer de configuracio de Redis situat a redis/default.conf, afegim

l’usuari web al grup de Redis perque pugui llegir i escriure al socket i creem el

fitxer perque pugui operar com a server. En aquest fitxer hi especifiquem com

ha de ser el server, amb quin usuari ha d’executar-se i quina comanda ha de

llancar. Incorporem tambe que s’iniciı el server automaticament al fer boot del

servidor.

port 0

unixsocket /var/run/redis/redis.sock

unixsocketperm 770

$ usermod -a -G redis wwwrun

$ sudo vim /etc/systemd/system/redis.service

[Unit]

Description=Redis In-Memory Data Store

After=network.target

46

Page 62: Facultat d’Informatica de Barcelona` UNIVERSITAT

[Service]

User=redis

Group=redis

ExecStart=/usr/sbin/redis-server /etc/redis/default.conf

ExecStop=/usr/bin/redis-cli shutdown

Restart=always

[Install]

WantedBy=multi-user.target

$ systemctl enable redis.service

Figura 39: Configuracio de Redis - Font:Propi

En la configuracio de Nextcloud hem d’afegir que volem que faci servir la cache

de Redis, per fer-ho modifiquem el fitxer nextcloud/config/config.php

'memcache.distributed' => '\\OC\\Memcache\\Redis',

'redis' =>

array (

'host' => '/var/run/redis/redis.sock',

'port' => 0,

'dbindex' => 0,

'password' => 'PASSWORD',

'timeout' => 1.5,

),

'memcache.locking' => '\\OC\\Memcache\\Redis',

Figura 40: Configuracio de Nextcloud/Redis - Font:Propi

En aquesta configuracio especifiquem el socket on volem treballar i el tipus de

cache que fem servir, la distribuıda.

Afegim una cache local, pero aquesta sera APCu. Instal·lem el modul de PHP

corresponent i l’agregarem a la configuracio de nextcloud.

$ zypper php7-APCu

$ vim nextcloud/config/config.php

'memcache.local' => '\\OC\\Memcache\\APCu',

47

Page 63: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 41: Instal·lacio del modul de cache local de PHP - Font:Propi

Per ultim, configurarem OPcache, un modul de PHP que tambe ajudara a op-

timitzar les funcionalitats de Nextcloud. Ens baixarem el modul de PHP i en

el fitxer de configuracio de PHP7, ubicat a /etc/php7/apache2/php.ini, modifi-

carem les lınies seguents:

$ zypper install php7-opcache

$ vim /etc/php7/apache2/php.ini

opcache.enable=1

opcache.enable_cli=1

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=10000

opcache.memory_consumption=128

opcache.save_comments=1

opcache.revalidate_freq=1

Figura 42: Configuracio d’OPcache per PHP - Font:Propi

Un cop modificats tots els fitxers podrem fer un restart del servidor web i

comprovar que els canvis s’han aplicat correctament i la interfıcie web s’executa

mes fluidament.

13.7.3 Backup de Nextcloud

Per poder assegurar la recuperacio del servei de Nextcloud en cas de perdues

de dades i per fer front a qualsevol mena d’inconvenient que ens puguem tro-

bar hem de poder fer copies de segureta i assegurar la integritat del sistema.

Abans de comencar a fer les copies de seguretat hem de ficar l’aplicacio en mode

manteniment, per fer-ho executarem en el directori del servidor:

$ sudo -u wwwrun php occ maintenance:mode --on

Figura 43: Activacio del mode manteniment - Font:Propi

En la instal·lacio de Nextcloud hem de fer tres copies de segure-

tat diferents. S’ubicaran les noves dades copiades a ”DIRECTORI

BACKUP”/backup nextcloud. Ho fem de la seguent manera:

48

Page 64: Facultat d’Informatica de Barcelona` UNIVERSITAT

• Arxius del servidor: ubicats al directori del server

$ rsync -Aavx nextcloud/ "DIRECTORI BACKUP"/

↪→ backup_nextcloud/nextcloud1_8_0-backup_server_

↪→ `date +"%Y%m%d"`/

Figura 44: Backup dels arxius del server - Font:Propi

• Dades dels usuaris: ubicades a ”DIRECTORI DADES”/nextcloud data/

$ rsync -Aavx nextcloud_data/ "DIRECTORI BACKUP"/

↪→ backup_nextcloud/nextcloud_1_8_0-databkp_`date

↪→ +"%Y%m%d"`/

Figura 45: Backup de les dades dels usuaris - Font:Propi

• Base de dades: ubicada a MariaDB

$ mysqldump --single-transaction -u USER -p --

↪→ databases nextcloudb > "DIRECTORI -BACKUP"/

↪→ backup_nextcloud/nextcloud_1_8_0-sqlbkp_`date

↪→ +"%Y%m%d"`.bak

Figura 46: Backup de la base de dades - Font:Propi

13.8 Upgrade de la versio de Nextcloud

Durant la instal·lacio de Nextcloud i els diferents serveis ens hem trobat que

han actualitzat el software fins a dues vegades. En el moment que ens vam

descarregar Nextcloud hi havia la versio 18.0.1 publicada mentre que actualment

ens trobem que ja existeix la 18.0.3. Els passos que hem de seguir per poder

actualitzar a l’ultima versio amb seguretat sense comprometre als usuaris ni les

seves dades son:

1. Backup de les dades: Per poder assegurar la integritat i la preservacio

de les dades en cas de fallada seguim els passos de la seccio anterior Backup

de Nextcloud.

2. Aturar el servidor web: Hem de parar el servidor web per poder fer el

canvi de versio amb seguretat i sense que hi hagi cap usuari connectat.

49

Page 65: Facultat d’Informatica de Barcelona` UNIVERSITAT

$ sudo systemctl stop apache2.service

Figura 47: Stop de Apache2 - Font:Propi

3. Aturar el cron: Actualment tenim un cron configurat per l’usuari wwwrun

que executa tasques en segon pla, l’hem d’aturar per no perdre la consistencia

en el moment que fem el canvi d’arxius.

$ crontab -u wwwrun -e

#*/5 * * * * php -f "DIRECTORI SERVER"/cron.php

Figura 48: Stop del cron de l’usuari wwwrun - Font:Propi

4. Moure les dades antigues: Haurem de canviar el nom del directori on teniem

instal·lat Nextcloud fins ara perque no col·lisioni amb el nou directori.

$ mv nextcloud/ nextcloud_old/

Figura 49: Guardar les dades antigues del servidor - Font:Propi

5. Descarregar la nova versio del software: En aquest cas, la versio sera la

18.0.3. La descarreguem i la extraiem del fitxer tar.

$ wget https://download.nextcloud.com/server/releases

↪→ /nextcloud-18.0.3.tar.bz2

$ tar -xjf nextcloud-18.0.3.tar.bz2

Figura 50: Descarrega de l’ultima versio - Font:Propi

6. Mantenir la configuracio antiga: Com que nomes volem fer un update de

versio sense canviar les caracterıstiques que teniem configurades volem mantenir

el fitxer de configuracio, per tant el copiem del directori antic al nou.

$ cp nextcloud_old/config/config.php nextcloud/config

↪→ /

Figura 51: Manteniment del fitxer de configuracio antic - Font:Propi

7. Mantenir les aplicacions instal·lades: Volem que les aplicacions que tenim

instal·lades i configurades continuin estant-hi. Per fer-ho hem de copiar els

50

Page 66: Facultat d’Informatica de Barcelona` UNIVERSITAT

seus directoris i arxius recursivament. L’aplicacio que ens permet el backend de

LDAP no es necessari copiar-la perque ja ve instal·lada per defecte.

$ cp -R nextcloud_old/apps/user_cas/ nextcloud/apps/

$ cp -R nextcloud_old/apps/nextcloud/ nextcloud/apps/

$ cp -R nextcloud_old/apps/groupfolders/ nextcloud/

↪→ apps/groupfolders/

Figura 52: Manteniment de les aplicacions instal·lades - Font:Propi

8. Mantenir els permisos correctes: Els diferents fitxers han de tenir els per-

misos correctes perque els usuaris web es pugin connectar i puguin operar amb

normalitat.

$ chown -R wwwrun:www nextcloud

$ find nextcloud/ -type d -exec chmod 750 {} \;

$ find nextcloud/ -type f -exec chmod 640 {} \;

Figura 53: Manteniment dels permisos en els fitxers - Font:Propi

9. Encendre el servidor web: En aquest cas fem restart perque apliqui els

canvis correctamentl.

$ sudo systemctl restart apache2.service

Figura 54: Restart d’Apache2 - Font:Propi

10. LLancar la comanda upgrade: Aquı es on realment s’aplica l’actualitzacio

del software. Per llancar la comanda seguent hem d’estar dintre del directori de

Nextcloud.

$ sudo -u wwwrun php occ upgrade

11. Reactivar el cron: Hem de tornar a activar el cron desactivat anteriorment

perque continuo executant tasques en background.

$ crontab -u wwwrun -e

*/5 * * * * php -f "DIRECTORI SERVER"/cron.php

Figura 55: Activacio del cron de l’usuari wwwrun - Font:Propi

51

Page 67: Facultat d’Informatica de Barcelona` UNIVERSITAT

12. Comprovar que funciona: Sembla obvi, pero es important comprovar que

l’aplicacio funciona correctament amb les aplicacions que teniem anteriorment

instal·lades i la versio actual de l’aplicacio es la que hem instal·lat, en aquest

cas la 18.0.3.

13. Backup de la nova versio: Per ultim, una bona practica per assegurar el

servei en cas de fallades, es tenir una copia de seguretat de l’aplicacio recentment

actualitzada.

52

Page 68: Facultat d’Informatica de Barcelona` UNIVERSITAT

14 Testing

14.1 Frontend

Durant la implementacio de tot el servei hem passat una serie de tests per

comprovar la integritat i escalabilitat de tota la instal·lacio. S’han fet proves

de diferent envergadura per testejar les situacions en que es poden trobar els

usuaris a l’utilitzar el servei. Per comencar, es prova la interfıcie d’usuari amb

tot el que comporta.

14.1.1 Autenticacio:

El primer dels tests es veure que l’autenticacio contra el servidor del CAS fun-

ciona correctament i podem entrar a la plataforma. Com podem veure en les

figures seguents, quan accedim a https://nextcloud.bsc.es ens redirigeix al portal

del CAS i un cop escrivim les nostres dades ens porta a Nextcloud.

Figura 56: Portal d’autenticacio del CAS - Font:Propi

53

Page 69: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 57: Nextcloud - Font:Propi

14.1.2 Sincronitzacio amb usuari de LDAP:

Un cop entrats a Nextcloud ens hauria d’haver fet match amb el nostre usuari

de LDAP. En la figura seguent podem observar com ens ha agafat per defecte

l’email i els grups de l’usuari de LDAP.

Figura 58: Importacio de dades dels usuaris de LDAP - Font:Propi

14.1.3 Pujada de fitxers:

Un dels tests que podem fer es comprovar que la pujada d’arxius al servidor es

realitza de manera correcta. Per fer el test utilitzem un fitxer de 250MB i el

pugem al home del meu usuari. Aquest test tambe ens serveix per comprovar

54

Page 70: Facultat d’Informatica de Barcelona` UNIVERSITAT

el sistema de quotes dels usuaris. Com podem observar en les figures seguents,

el fitxer s’ha pujat correctament i la quota de l’usuari s’ha vist modificada i ha

augmentat la part proporcional.

Figura 59: Fitxer pujat a Nextcloud - Font:Propi

Figura 60: Quota d’usuari - Font:Propi

14.2 Backend

Per la part del backend, s’han dissenyat dos proves diferents per comprovar la

escalabilitat del sistema.

14.2.1 CPU i memoria:

El test consisteix en la pujada i baixada d’arxius d’1GB concurrentment de 4

usuaris diferents des de la seva interfıcie web i posteriorment la seva descarrega.

En paral·lel s’executa un script al servidor que agafa les dades de cpu i

memoria executant un top i realitza una grafica que mostra la seva evolucio en

el temps.

Per comencar, generem fitxers d’1GB per fer les proves posteriors.

55

Page 71: Facultat d’Informatica de Barcelona` UNIVERSITAT

$ sudo dd if=/dev/zero/ of=/tmp/filea.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/fileb.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/filec.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/filed.dat count=1000 bs

↪→ =1000000

Figura 61: Generacio dels fitxers d’1GByte corresponents - Font:Propi

• 1 fitxer d’1GB per usuari

Per la realitzacio del primer experiment s’han seguit les seguents tasques.

1. Usuari 1 inicia la pujada del fitxer filea.dat en t=00:10s.

2. Usuari 2 inicia la pujada del fitxer fileb.dat en t=00:17s.

3. Usuari 3 inicia la pujada del fitxer filec.dat en t=00:28s.

4. Usuari 4 inicia la pujada del fitxer filed.dat en t=00:37s.

5. Usuari 1 inicia la descarrega del fitxer filea.dat en t=03:29s.

6. Usuari 2 inicia la descarrega del fitxer fileb.dat en t=03:35s.

7. Usuari 3 inicia la descarrega del fitxer filec.dat en t=03:40s.

8. Usuari 4 inicia la descarrega del fitxer filed.dat en t=03:45s.

D’aquesta manera, l’usuari 1 es el primer que comenca a pujar el fitxer i

se li afegeixen els 3 altres usuaris de manera que les 4 pujades coincideixen

a la vegada. La descarrega es d’una forma similar, comenca l’usuari 1 i els

altres usuaris se li afegeixen de manera que les 4 descarregues coincideixen

a la vegada. Aquesta primera execucio dura 15 minuts.

56

Page 72: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 62: Carrega de la CPU amb 1 fitxer per usuari - Font:Propi

Figura 63: Carrega de la memoria amb 1 fitxer per usuari - Font:Propi

En l’eix X secundari (a la part superior de les grafiques) podem observar

57

Page 73: Facultat d’Informatica de Barcelona` UNIVERSITAT

l’inici i final de totes les pujades (tasques 1 a 4) i l’inici i final de totes les

descarregues (tasques 5 a 8). Podem observar que quan iniciem la puja-

da dels arxius (tasca 1), les CPUs (figura 62) augmenten la seva carrega

considerablement d’acord amb el nombre de pujades fins al 90-95%. Con-

forme les pujades van acabant, la carrega disminueix fins al 10%, moment

on comencen les descarregues (tasca 5) i puja substancialment l’us de la

cpu, que en mitjana es situa al 20% d’us. Quan acaben les descarregues

(minut 11) es pot observar com l’us de les CPUs cau fins aproximadament

el 5%.

Fixant-nos en la segona grafica (figura 63), podem observar que la memoria

creix entre els 4600MB i els 4900MB durant les pujades. Quan es situa

en les 20 iteracions (minut 3), moment que comencen les baixades, torna

a incrementar des dels 3800MB fins als 4700MB. Es pot veure tambe que

la memoria swap gairebe no varia mentre que la memoria lliure que tenim

disponible es la inversa a la de buff/cache durant l’execucio, per exemple

en el moment que acaben les pujades se n’allibera un 1GB.

• 2 fitxers d’1GB per usuari

En aquest segon experiment afegirem 1 fitxer d’1GB adicional en cada

pujada i cada baixada per cada usuari. Per comencar, generem els fitxers

adicionals que ens falten de la mateixa manera que els primers.

$ sudo dd if=/dev/zero/ of=/tmp/filee.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/filef.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/fileg.dat count=1000 bs

↪→ =1000000

$ sudo dd if=/dev/zero/ of=/tmp/fileh.dat count=1000 bs

↪→ =1000000

Per la realitzacio del segon experiment, s’ha seguit el seguent esquema:

1. Usuari 1 inicia la pujada del fitxer filea.dat en t=00:7s.

2. Usuari 1 inicia la pujada del fitxer fileb.dat en t=00:17s.

58

Page 74: Facultat d’Informatica de Barcelona` UNIVERSITAT

3. Usuari 2 inicia la pujada del fitxer filec.dat en t=00:25s.

4. Usuari 2 inicia la pujada del fitxer filed.dat en t=00:32s.

5. Usuari 3 inicia la pujada del fitxer filea.dat en t=00:38s.

6. Usuari 3 inicia la pujada del fitxer fileb.dat en t=00:45s.

7. Usuari 4 inicia la pujada del fitxer filec.dat en t=00:53s.

8. Usuari 4 inicia la pujada del fitxer filed.dat en t=00:59s.

9. Usuari 1 inicia la descarrega del fitxer filea.dat en t=08:16s.

10. Usuari 1 inicia la descarrega del fitxer fileb.dat en t=08:22s.

11. Usuari 2 inicia la descarrega del fitxer filec.dat en t=08:28s.

12. Usuari 2 inicia la descarrega del fitxer filed.dat en t=08:33s.

13. Usuari 3 inicia la descarrega del fitxer filea.dat en t=08:38s.

14. Usuari 4 inicia la descarrega del fitxer fileb.dat en t=08:43s.

15. Usuari 4 inicia la descarrega del fitxer filec.dat en t=08:48s.

16. Usuari 4 inicia la descarrega del fitxer filed.dat en t=08:52s.

El funcionament de l’experiment es calcat a l’anterior, de manera que el

primer usuari comenca a pujar dos fitxers i els altres usuaris se li afegeixen.

Hi haura un moment que coincidiran les 8 pujades a la vegada i ens serveix

per veure com aguanta el sistema. Quan acaben les pujades fem el mateix

amb les baixades, comenca el primer usuari amb els dos fitxers i se li

van afegint els altres de manera que acaben coincidint les 8 baixades a la

vegada. Aquest experiment dura 25 minuts.

59

Page 75: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 64: Carrega de la CPU amb 2 fitxers per usuari - Font:Propi

Figura 65: Carrega de la memoria amb 2 fitxers per usuari - Font:Propi

En l’eix X secundari (a la part superior de les grafiques) podem observar

60

Page 76: Facultat d’Informatica de Barcelona` UNIVERSITAT

l’inici i final de totes les pujades (tasques 1 a 8) i l’inici i final de totes

les descarregues (tasques 9 a 16). En la figura 64 podem observar que les

CPUs tarden aproximadament 1 minut mes que en l’experiment anterior

en augmentar la seva carrega al maxim i aquesta carrega es mante entre

les iteracions 30 i 50 (minut 8), moment on acaben les pujades i l’ocu-

pacio cau fins al 10%. Un cop comencen les descarregues (minut 08:16)

augmenta la carrega fins aproximadament el 20% i es mante fins al minut

22, moment on acaben les descarregues i la carrega cau fins al 5%.

Si mirem la segona grafica (figura 65) podem veure uns intervals sem-

blants a la de CPU. Hi ha una pujada substancial en l’us de la memoria

de 4600MB fins als 5150MB (minut 8 on acaben les pujades dels fitxers).

Durant aquest perıode de temps la memoria swap tambe augmenta des

dels 900MB fins als 1250MB, valor que mante quasi-be fins als final de

l’execucio. En el temps entre que han acabat les pujades i no han co-

mencat les baixades hi ha un clar descens de la memoria ocupada des dels

5150MB fins als 3550MB i simetricament un ascens de la memoria lliure

des dels 132MB fins als 1741MB. Un cop comencen les descarregues tota

aquesta memoria lliure es torna a alocatar i es mante constant en valors

d’aproximadament 5130MB fins al moment on acaben les descarregues

(minut 22/iteracio 130), on torna a augmentar fins als 5230MB per l’es-

criptura en disc dels fitxers. Finalment torna a baixar fins als 5180MB.

En aquest tram final, la memoria lliure torna a augmentar per l’alliberacio

dels recursos i la swap es mante constant en els seus valors previs.

14.2.2 Xarxa:

Per la realitzacio del test de xarxa s’ha dissenyat un script que executa la

comanda dd en una maquina local contra el home d’un usuari a Nextcloud

muntat per xarxa a traves del protocol DAVS. En cadascun dels passos es

mesura l’ample de banda donat per l’execucio de la comanda. L’esquema

que segueix l’experiment es el seguent:

1. Generem un fitxer amb inputfile en /dev/zero, que es un dispositiu

que ens genera una sequencia infinita de zeros, d’aquesta manera

61

Page 77: Facultat d’Informatica de Barcelona` UNIVERSITAT

evitem tocar el disc local.

2. Enviem el mateix fitxer amb inputfile del home de l’usuari a /dev/null

per evitar tocar el disc local.

3. Llegim un fitxer del disc local i l’enviem al home de l’usuari.

4. Enviem el mateix fitxer del home del usuari al disc local.

Figura 66: Ample de banda - Font:Propi

Com es pot veure en el cas que no es llegeix ni s’escriu en disc local, l’ample de

banda es significativament mes gran, mentre que quan s’executen operacions de

lectura escriptura en el disc l’ample de banda disminueix, mostrant que el coll

d’ampolla es el disc i no la xarxa.

Al realitzar les proves mitjancant VPN degut a l’epidemia del Covid-19, no hem

pogut comprovar l’ample de banda efectiu que tindrıem en el cas que estiguessim

connectats directament, pel que seria un bon experiment a realitzar pero no

factible per les condicions actuals.

62

Page 78: Facultat d’Informatica de Barcelona` UNIVERSITAT

15 Passar el servei a produccio

15.1 Monitoritzacio dels serveis

El pas del servei a produccio es un dels ultims passos que te el projecte. Ve

precedit del testeig del servei i un cop aquest es fortuıt podem passar el projecte

en el qual vindria a ser el funcionament normal del servei en el dia a dia.

Un dels passos mes importants abans que els usuaris puguin comencar a fer

servir la plataforma es la monitoritzacio dels diferents serveis que tenim en

funcionament. Amb aixo tindrem una imatge en temps real de com estan els

serveis en particular i el sistema en general. L’eina que es fa servir es Nagios[24],

amb el que s’executen diferents checks amb plugins NRPE programats i s’envien

les dades al servidor de Nagios on centralitza totes les alertes.

Es defineixen plugins de NRPE pels serveis de Redis, MySQL i Docker, ja que

en cas que algun d’aquests caigui no tindrem servei i d’aquesta manera podrem

rebre les alertes en un temps molt petit. Per comprovar que Apache s’executa

correctament definim un check des del mateix servidor de Nagios que mirara si

el port :443 tenim les dades esperades.

Els checks de Redis, MySQL i Docker seran d’una forma semblant, simplement

comprovem que el server estigui corrent correctament.

#!/bin/bash

status=`systemctl status redis.service | grep "Active" |

↪→ cut -d" " -f5`

if [[ "$status" == "active" ]]; then

echo "active"

exit 0

else

echo "inactive"

exit 2

fi

63

Page 79: Facultat d’Informatica de Barcelona` UNIVERSITAT

Figura 67: Check de Redis

#!/bin/bash

status=`systemctl status mysql.service | grep "Active" |

↪→ cut -d" " -f5`

if [[ "$status" == "active" ]]; then

echo "active"

exit 0

else

echo "inactive"

exit 2

fi

Figura 68: Check de MySQL

#!/bin/bash

status=`systemctl status docker.service | grep "Active" |

↪→ cut -d" " -f5`

if [[ "$status" == "active" ]]; then

echo "active"

exit 0

else

echo "inactive"

exit 2

fi

Figura 69: Check de Docker

Com es pot veure, aquest script agafa l’estat de cadascun dels serveis i si es

active ens treu per pantalla active i ens retorna 0 de exit code. En el cas que el

64

Page 80: Facultat d’Informatica de Barcelona` UNIVERSITAT

servei no sigui active ens retorna 2 com a exit code. Aquest codi de finalitzacio

s’envia al servidor de Nagios i es monitoritza. En el cas que passi de active a

inactive ens envia una alerta generada automaticament per Nagios amb l’estat

en que es troba.

15.2 Manteniment dels usuaris

En l’entorn del BSC, on treballen actualment mes de 700 usuaris, les altes i

baixes d’usuaris son constants i per tant hem de mantenir una consistencia per

no perdre dades d’usuaris rellevants.

• En el cas de les altes, el sistema automaticament fa un check periodic un

cop al dia afegint els usuaris nous al sistema.

• En el cas de les baixes, en el mateix check periodic detectara que l’usuari

ja no hi es i el marcara com a inexistent. Un cop cada hora, el sistema

analitzara una part de tots els usuaris i els hi activara un flag en els que

estiguin inexistents a la base de dades conforme es pot eliminar l’usuari.

Per eliminar totes les dades dels usuaris (fitxers i configuracions de la base

de dades) llancarem un script periodicament que fara un bucle per tots

els usuaris marcats amb el flag i els suprimira.

#!/bin/bash

for i in $(sudo -u wwwrun php occ ldap:show-

↪→ remnants | awk -F'| ' '{print $2}'); do

echo "Delete user: $i"

sudo -u wwwrun php occ user:delete $i

done

Figura 70: Script per eliminar usuaris inexistents

65

Page 81: Facultat d’Informatica de Barcelona` UNIVERSITAT

16 Lleis i regulacions

Nextcloud es una aplicacio que treballa amb diferents tipus de dades dels usuaris

i que per tant ha de complir les diverses normatives i lleis que existeixen pel que

fa a la proteccio d’aquestes dades.

• Per una banda tenim que les dades sensibles dels usuaris es gestionen a

traves dels serveis d’autenticacio del centre com son els servidors de LDAP

i CAS. Les dades que els usuaris tenen en aquests serveis son confidencials i

d’us restringit pels diferents servidors del centre i no enrutables a internet.

• Per altra banda, les dades que emmagatzemin els usuaris a la plataforma

estan guardades en els servidors de discs del BSC i es gestionen a traves

del mateix servidor de Nextcloud.

En el primer cas no tenim la gestio dels servidors de LDAP i CAS per tant, les

diferents normatives i lleis que hi puguin haver no ens apliquen. En el segon

cas, es garanteix que les dades que hi hagin emmagatzemat els diferents usuaris

son exclusivament per l’us de la plataforma i en cap cas s’utilitzaran per a altres

afers que no siguin relacionats amb la mateixa plataforma. Per tant compleix

amb la Llei Organica de Proteccio de Dades (LOPD) [25].

A nivell de BSC, s’assegura la seguretat de les dades i la no transmissio a tercers

d’aquestes, per tant la conformitat i compliment de la Llei Organica de Proteccio

de Dades.

66

Page 82: Facultat d’Informatica de Barcelona` UNIVERSITAT

17 Sostenibilitat

En la fita inicial del projecte es va realitzar un petit informe de sostenibilitat

preveient com podria anar el projecte ambientalment, economicament i social-

ment. Un cop acabat el projecte es pot fer una analisi rigoros entrant a fons en

aquests 3 aspectes per poder-los desgranar i trobar els punts positius i negatius.

PARTIDA PPP VIDA UTIL RISCS

Ambiental [A-PPP] [A-VU] [A-R]

Economic [E-PPP] [E-VU] [E-R]

Social [S-PPP] [S-VU] [S-R]

Taula 13: Matriu de sostenibilitat. Font: [12]

17.1 Aspectes ambientals

• [PPP] Has quantificat l’impacte ambiental de la realitzacio del

projecte? Quines mesures has pres per reduir l’impacte? Has

quantificat aquesta reduccio? [A-PPP] Si, la major part de l’impac-

te generat ambientalment es a la creacio de tots els requisits hardware

que necessitem per desenvolupar el projecte i degut a que tenim un ser-

vidor ences les 24 hores del dia consumint recursos i als discs durs que

s’han utilitzat. Per reduir l’impacte ambiental, quan fallin discs es torna-

ran a l’empresa perque els reutilitzin i els puguin reparar sense haver de

construir-ne tants de nous.

• [PPP] Si tornessis a fer de nou el projecte, podries realitzar-lo

amb menys recursos? [A-PPP] No, ja ho estem fent amb el mınim de

recursos ambientals.

• [Vida util] Quins recursos estimes que s’utilitzaran durant la vi-

da util del projecte? Quin sera l’impacte ambiental d’aquests

recursos? [A-VU] S’utilitzaran els recursos que es van proposar inici-

alment, que son: un PC, una controladora per la maquina virtual i els

discs durs. L’impacte ambiental es el de generar i mantindre tots aquests

components electronics en bon estat i renovar-los quan comencin a fallar.

67

Page 83: Facultat d’Informatica de Barcelona` UNIVERSITAT

• [Vida util] El projecte permetra reduir l’us d’altres recursos?

Globalment, l’us del projecte millorara o empitjorara la petjada

ecologica? [A-VU] El projecte no permetra reduir l’us d’altres recursos

perque hem canviat de tecnologia que feiem servir pero el hardware acaba

sent el mateix. L’us del projecte millorara la petjada ecologica perque els

destinataris d’aquest projecte son els cientıfics que han de disposar d’eines

per poder compartir fitxers, i per tant els hi donem facilitats perque puguin

realitzar la seva feina correctament.

• [Riscs] Podrien produir-se escenaris que fessin augmentar la pet-

jada ecologica del projecte? Si, el fet que qualsevol dels components

hardware falli implica que n’haurem de comprar mes i per tant augmentara

la petjada ecologica. [A-R]

17.2 Aspectes economics

• [PPP] Has quantificat el cost (recursos humans i materials) de

la realitzacio del projecte? Quines decisions has pres per reduir

el cost? Has quantificat aquest estalvi? [E-PPP] Si, el preu final

del projecte es el que es va pressupostar inicialment. Les decisions que es

van prendre per reduir el cost del projecte es basicament la utilitzacio de

software lliure.

• [PPP] S’ha ajustat el cost previst al cost final? Has justificat les

diferencies (llicons apreses)? [E-PPP] Si, el cost real del projecte esta

dintre del pressupostat perque les partides per contingencies i imprevistos

no han fet falta, per tant els costs son nomes de recursos humans i costs

generics (hardware/infraestructura).

• [Vida util] Quin cost estimes que tindra el projecte durant la seva

vida util? Es podria reduir aquest cost per fer-lo mes viable?

[E-VU] El cost que tindra el projecte durant la seva vida util es el del

manteniment dels diferents components hardware que tenim. Per reduir

aquest cost hem d’utilitzar correctament el hardware i fer que treballi en

les millors condicions, per exemple evitar apagades sobtades del sistema

68

Page 84: Facultat d’Informatica de Barcelona` UNIVERSITAT

i corrupcio de dades. D’aquesta manera els components electronics no es

trencaran i duraran mes.

• [Vida util] S’ha tingut en compte el cost del suport/actualitzaci-

ons/manteniment durant la vida util del projecte? [E-VU] El cost

del suport, actualitzacions i manteniment es fara dintre del projecte i esta

inclos en les hores pressupostades.

• [Riscs] Podrien produir-se escenaris que perjudiquessin la via-

bilitat del projecte? [E-R] Si, per exemple que l’empresa pensi que el

projecte no es prioritari i destines les partides a altres projectes.

17.3 Aspectes socials

• [PPP] La realitzacio d’aquest projecte ha implicat reflexions sig-

nificatives en l’ambit personal, professional o etic de les persones

que han intervingut? [S-PPP] Si, en l’ambit personal, com a estudi-

ant de final d’enginyeria informatica crec que estar-me tots aquests mesos

pensant maneres de fer les coses, trencant-me el cap i equivocant-me molt

m’han donat molta visio de com pot ser treballar en aquests aspectes.

Amb la crisi del coronavirus en marxa, he pogut veure que alguns treba-

lladors no han pogut continuar amb la seva feina perque a causa de la

distancia no poden actuar amb normalitat, en canvi en els llocs de treball

que comporten fer servir ordinadors i servidors s’ha fet mes flexible tot

plegat. Per tant, una mica la conclusio que en trec es que en la mesura del

possible ens haurıem de poder adaptar com a societat per poder suportar

quan passen aquestes coses.

• [Vida util] Qui es beneficiara del projecte? Hi ha algun

col·lectiu que pot ver-se perjudicat pel projecte? En quina

mesura? [S-VU] Els treballadors del BSC son els principals beneficiats

del projecte. No hi ha cap col·lectiu que es vegi perjudicat.

• [Vida util] En quina mesura aquest projecte resoldra el problema

plantejat inicialment? [S-VU] El projecte resol tots els objectius propo-

sats inicialment excepte el de poder bloquejar fitxers per evitar conflictes,

per tant els usuaris poden fer practicament tot el que s’havia proposat.

69

Page 85: Facultat d’Informatica de Barcelona` UNIVERSITAT

• [Riscs] Podrien produir-se escenaris que fessin que el projecte fos

perjudicial per algun segment particular de la poblacio? [S-R] No.

• [Riscs] El projecte podria crear algun tipus de dependencia que

deixes els usuaris en una posicio de debilitat? [S-R] No.

70

Page 86: Facultat d’Informatica de Barcelona` UNIVERSITAT

18 Conclusions

18.1 Objectius

En la finalitzacio del projecte ens trobem que hem d’avaluar si els objectius que

ens vam posar a l’inici s’han complert o no. Els objectius principals eren fer una

avaluacio de les necessitats que l’empresa pogues tenir per implantar un sistema

de comparticio de fitxers, donar-li suport i obtenir feedback. Un cop desenvolu-

pat el projecte, podem veure que aquests tres objectius s’han complert, ja que la

plataforma s’ha posat en marxa, s’ha passat d’un entorn de testing a un entorn

de produccio i els usuaris ens van dient com ho veuen.

Pel que fa als requisits funcionals tenim que s’han complert amb les excepci-

ons dels requisits 3.3.3 bloqueig de documents, ja que Nextcloud no suporta el

bloqueig de fitxers i els desenvolupadors no tenen intencio d’afegir-ho a curt

termini, i 3.3.4 Muntatge local parcialment perque la implementacio de DAVS a

Windows es erronia i no ens permet mantenir una particio muntada per xarxa

despres d’un reboot.

18.2 Personalment

Segurament ha sigut el projecte mes gran que he portat a terme fins ara, l’en-

vergadura que ha anat agafant tot plegat es bastant gran i molt mes de la que

em pogues imaginar d’un principi. Vaig comencar a mig febrer posant les ba-

ses sobre que volia fer, em van donar l’oportunitat de posar en marxa aquest

projecte i portar-lo i crec que ha sigut una oportunitat molt bona de comencar

a posar-me en la pell d’un sysadmin, pel que fa a la metodologia que he anat

agafant i a les tecnologies que he anat tocant, la majoria d’elles completament

noves per a mi, que potser havia sentit mencionar pero ni de bon tros haver de

configurar.

Segurament el que m’ha portat mes temps i mes equivocacions ha sigut informar-

me de com instal·lar correctament certs softwares, per exemple la instal·lacio

d’OnlyOffice va portar bastants problemes perque no funcionava be amb SLES

i finalment vaig optar per fer-ho amb Docker, ja que simplificava molt la cosa.

Tot aixo m’ha servit molt per aprendre i entendre com funcionen aspectes que

71

Page 87: Facultat d’Informatica de Barcelona` UNIVERSITAT

son molt concrets de tota la tematica i no toques gens al grau, aixı que la valo-

racio que en faig es molt positiva i crec que les hores implicades han valgut la

pena.

18.3 Treball futur

En ser un servei que estara en produccio, hem d’estar al corrent de les actua-

litzacions que hi vagi havent de tota la plataforma i de les seves aplicacions per

mantenir-les en una versio correcta. Tambe es possible que en algun moment

la comunitat o els mateixos desenvolupadors integrin el bloqueig de fitxers i ho

puguem sumar al nostre projecte perque els usuaris puguin acabar de treballar

correctament, per tant es molt important d’anar comprovant les noves versi-

ons. Continuant amb el suport del servei, hem de controlar que el servidor i

els diferents serveis que tenim com a base de la plataforma estiguin recentment

actualitzats. Tambe es necessari vigilar que la mida de l’emmagatzematge no

sobrepassi el 70-80% de la totalitat i anar-lo ampliant quan calgui.

72

Page 88: Facultat d’Informatica de Barcelona` UNIVERSITAT

Bibliografia

Referencies

[1] Web BSC

https://www.bsc.es/

Accedit el dia 17/02/2020

[2] Transparencies SDX

Concepts of distributed systems - Jordi Guitart

[3] Nextcloud Web

https://nextcloud.com/

Accedit el dia 19/02/2020

[4] Wikipedia LDAP

https://en.wikipedia.org/wiki/Lightweight Directory Access Protocol

Accedit el dia 19/02/2020

[5] Wikipedia SAMBA

https://en.wikipedia.org/wiki/Samba (software)

Accedit el dia 19/02/2020

[6] Seafile Web

https://www.seafile.com/en/home/

Accedit el dia 19/02/2020

[7] Synchthing Web

https://syncthing.net/

Accedit el dia 19/02/2020

[8] Comparison between dropbox alternatives

https://blog.ssdnodes.com/blog/nextcloud-vs-seafile-dropbox-alternative/

Accedit el dia 19/02/2020

[9] Wikipedia CAS

https://en.wikipedia.org/wiki/Central Authentication Service

Accedit el dia 20/02/2020

73

Page 89: Facultat d’Informatica de Barcelona` UNIVERSITAT

[10] Repositori amb diferents alternatives

https://github.com/awesome-selfhosted/awesome-selfhosted#file-transfersynchronization

Accedit el dia 21/02/2020

[11] GanttProject

https://www.ganttproject.biz/

Accedit el dia 27/02/2020

[12] Raco de la fib

https://www.fib.upc.edu/sites/fib/files/documents/estudis/tfg-informe-sostenibilitat-2018.pdf

Accedit el dia 05/03/2020

[13] PayScale

https://www.payscale.com

Accedit el dia 05/03/2020

[14] Nextcloud Admin Manual

https://docs.nextcloud.com/server/18/admin manual/installation/system requirements.html

Accedit el dia 03/03/2020

[15] OnlyOffice Admin Manual

https://helpcenter.onlyoffice.com/es/server/linux/document/index.aspx

Accedit el dia 05/03/2020

[16] Instal·lacio de certificats

https://www.digicert.com/kb/csr-ssl-installation/apache-openssl.htm

Accedit el dia 12/03/2020

[17] Instal·lacio de redis

https://redis.io/topics/quickstart

Accedit el dia 20/03/2020

[18] SSL Nginx

https://www.digicert.com/kb/csr-ssl-installation/nginx-openssl.htm

Accedit el dia 03/04/2020

[19] SSL HAProxy

https://discourse.haproxy.org/t/using-ssl-with-haproxy-for-docker-containers/307/19

Accedit el dia 03/04/2020

74

Page 90: Facultat d’Informatica de Barcelona` UNIVERSITAT

[20] OnlyOffice-Nextcloud integration

https://github.com/ONLYOFFICE/onlyoffice-nextcloud

Accedit el dia 03/04/2020

[21] CAS user

https://apps.nextcloud.com/apps/user cas

Accedit el dia 03/04/2020

[22] CAS github

https://github.com/felixrupp/user cas/blob/master/README.md

Accedit el dia 03/04/2020

[23] Redis

https://redis.io/

Accedit el dia 15/04/2020

[24] Nagios

https://exchange.nagios.org/

Accedit el dia 14/05/2020

[25] LOPD

https://www.boe.es/buscar/pdf/2018/BOE-A-2018-16673-consolidado.pdf

Accedit el dia 26/05/2020

75

Page 91: Facultat d’Informatica de Barcelona` UNIVERSITAT

Apendix

18.4 Scripts utilitzats en el tests

#!/bin/bash

file="*.dat"

rm $file

#GET TOP DATA

top 1 -b -d 10 -n 90 >> topdata.dat

#CPU

#PARSE CPU DATA

grep Cpu topdata.dat | cut -d "," -f7,8 | cut -d"i" -f1 |

↪→ tr ',' '.' > cpudata.dat

#TRANSFORM DATA TO GET CPU USAGE

while IFS='' read -r LINE || [ -n "${LINE}" ]; do

aux=`bc <<< "scale=1; 100-${LINE}"`

echo $aux >> cpusage.dat

done < cpudata.dat

#GENERATE TABLE

echo "Cpu0 Cpu1 Cpu2 Cpu3" > final.dat

awk '{printf "%s" (NR%4==0?RS:FS),$1}' cpusage.dat >>

↪→ final.dat

#GENERATE GRAPHICS

gnuplot scriptgrafica.in

#MEMORY

76

Page 92: Facultat d’Informatica de Barcelona` UNIVERSITAT

#buff/cache

grep "MiB Mem" topdata.dat | cut -d "," -f7,8 | awk '{

↪→ print $1}' | tr ',' '.' >> buffcache.dat

#free

grep "MiB Mem" topdata.dat | cut -d "," -f3,4 | awk '{

↪→ print $1}' | tr ',' '.' >> free.dat

#swap

grep "MiB Swap" topdata.dat | cut -d "," -f5,6 | awk '{

↪→ print $1}' | tr ',' '.' >> swap.dat

echo "Buff/cache free swap" > finalmem.dat

paste buffcache.dat free.dat swap.dat >> finalmem.dat

#GENERATE GRAPHICS

gnuplot memplot.in

Figura 71: Extraccio de dades de memoria i CPU - Font:Propi

set title "MEMORY USAGE" font ", 20"

set style fill solid 1.0

set boxwidth

set term png

set auto x

set ylabel 'MiB'

set xlabel 'min'

set x2label 'tasques'

set style data histogram

set style histogram cluster gap 3

set yrange [0:8000]

set xrange [0:90]

set xtics('1' 6, '2' 12, '3' 18, '4' 24, '5' 30, '6' 36,

↪→ '7' 42, '8' 48, '9' 54, '10' 60, '11' 66, '12' 72,

↪→ '13' 78, '14' 84, '15' 90)

set x2tics('1' 1, '4' 3.7, '5' 20.9, '8' 22.5) font ", 8"

77

Page 93: Facultat d’Informatica de Barcelona` UNIVERSITAT

set output "mem.png"

plot 'finalmem.dat' using 1 title col, \

'' using 2 title col, \

'' using 3 title col

Figura 72: Generacio de la grafica de memoria - Font:Propi

set title "CPU USAGE" font ", 20"

set style fill solid 1.0

set boxwidth 0.5

set term png

set xlabel 'min'

set ylabel '%cpu'

set x2label 'tasques'

set style data histogram

set style histogram cluster gap 4

set yrange [0:100]

set xrange [0:90]

set output "cpu.png"

set xtics('1' 6, '2' 12, '3' 18, '4' 24, '5' 30, '6' 36,

↪→ '7' 42, '8' 48, '9' 54, '10' 60, '11' 66, '12' 72,

↪→ '13' 78, '14' 84, '15' 90)

set x2tics('1' 1, '4' 3.7, '5' 20.9, '8' 22.5) font ", 8"

plot 'final.dat' using 1 title col, \

'' using 2 title col, \

'' using 3 title col, \

'' using 4 title col

Figura 73: Generacio de la grafica de CPU - Font:Propi

#!/bin/bash

echo "Pujada Baixada" > final.dat

78

Page 94: Facultat d’Informatica de Barcelona` UNIVERSITAT

dd if=/dev/zero of=˜/nextcloud/file.dat count=1000 bs=1000000

↪→ 2> dd1.txt

x=`cat dd1.txt | grep "copied" | awk '{print $10}' | tr ','

↪→ '.'`

dd if=˜/nextcloud/file.dat of=/dev/null bs=1000000 2> dd2.txt

y=`cat dd2.txt | grep "copied" | awk '{print $10}' | tr ','

↪→ '.'`

dd if=/tmp/file.dat of=˜/nextcloud/file2.dat count=1000 bs

↪→ =1000000 2> dd3.txt

z=`cat dd3.txt | grep "copied" | awk '{print $10}' | tr ','

↪→ '.'`

dd if=˜/nextcloud/file2.dat of=/tmp/file2.dat bs=1000000 2>

↪→ dd4.txt

w=`cat dd4.txt | grep "copied" | awk '{print $10}' | tr ','

↪→ '.'`

echo "$x $y" >> final.dat

echo "$z $w" >> final.dat

gnuplot plotxarxa.in

Figura 74: Extraccio de dades d’ample de banda - Font:Propi

set title "NETWORK BANDWITH"

set style data histogram

set style histogram cluster gap 1

set style fill solid border rgb "black"

set auto x

set yrange[0:2000]

set ylabel "MB/s"

set term png

79

Page 95: Facultat d’Informatica de Barcelona` UNIVERSITAT

set output "bandwith.png"

set xtics('No accedim a disc local' 0, 'Accedim a disc local'

↪→ 1)

plot 'final.dat' using 1 title col, \

'' using 2 title col

Figura 75: Generacio de la grafica d’ample de banda - Font:Propi

18.5 Taules de dades

Cpu0 (%) Cpu1 (%) Cpu2 (%) Cpu3 (%)

0 0 13.0 15.0

2.3 0.3 1.3 0.4

4.9 12.4 15.5 19.5

11.9 9.0 19.3 13.0

14.1 21.3 18.5 27.0

18.1 21.2 35.1 16.7

20.4 13.8 34.7 15.6

32.5 26.5 30.7 28.1

24.3 22.2 25.7 22.4

40.4 40.8 55.5 42.6

21.5 35.0 23.0 31.5

28.0 25.8 37.7 17.8

13.1 16.0 17.2 10.8

16.7 32.2 37.6 20.7

62.6 93.7 90.0 52.0

96.7 55.6 42.8 45.4

100.0 53.5 45.9 24.2

55.1 69.3 65.2 100.0

43.2 78.8 24.6 52.6

16.2 1.2 53.3 5.8

2.6 1.1 1.3 .9

7.3 7.5 9.6 1.8

80

Page 96: Facultat d’Informatica de Barcelona` UNIVERSITAT

21.9 6.2 3.7 1.7

3.7 3.7 8.6 4.0

3.7 3.0 4.3 1.0

5.7 3.6 4.4 .4

3.5 3.7 5.7 1.2

7.3 4.3 1.4 1.8

6.6 2.8 1.4 2.6

9.0 7.6 3.1 4.0

8.7 5.0 2.2 .7

3.7 3.2 3.0 .7

4.0 2.4 8.6 .5

4.1 3.1 7.3 2.2

1.9 3.6 5.4 .4

5.9 3.8 6.5 2.2

7.6 5.6 6.2 4.1

85.1 6.5 6.8 11.2

20.2 24.6 35.6 29.6

27.2 33.7 30.9 28.6

11.0 20.5 72.6 10.9

11.4 38.4 33.6 38.9

22.5 24.0 61.0 16.4

20.6 17.5 53.6 24.4

12.2 49.7 41.4 16.3

34.8 23.5 53.6 8.9

24.3 20.0 66.0 8.5

26.0 19.7 59.5 16.3

25.3 29.4 47.6 17.8

9.2 12.1 75.2 20.4

11.2 8.2 12.2 5.3

2.1 6.5 3.2 11.7

.9 4.5 .4 4.9

81

Page 97: Facultat d’Informatica de Barcelona` UNIVERSITAT

3.6 11.6 4.7 3.8

1.5 7.6 1.0 3.3

1.8 9.0 1.5 3.9

3.0 9.3 1.7 6.2

3.8 4.9 1.9 9.6

3.8 3.3 1.0 7.6

4.3 4.7 2.9 7.9

4.1 4.0 1.4 7.8

3.7 3.4 1.3 7.1

5.2 4.2 1.8 9.5

5.1 6.1 3.1 12.6

2.8 3.4 .8 6.7

4.4 5.8 5.1 8.5

4.4 8.3 3.5 9.2

5.8 15.7 8.2 6.1

1.4 .3 .5 2.2

1.3 2.8 1.2 1.7

1.1 .7 .5 .4

2.4 1.5 5.1 2.3

1.0 1.3 .9 .8

1.4 .3 .1 .3

2.8 .8 1.0 .7

3.3 .8 .9 1.1

1.0 .7 .3 .3

1.8 1.8 1.7 4.8

.9 .7 1.3 1.5

.9 .5 .4 .2

2.1 1.6 .9 .9

1.9 1.4 .8 1.9

1.0 .5 .6 .3

5.2 1.5 1.5 1.4

82

Page 98: Facultat d’Informatica de Barcelona` UNIVERSITAT

1.3 .6 .9 .8

1.1 .5 .4 .2

1.2 1.0 .5 1.0

1.9 1.6 .7 2.4

.9 .6 .5 .5

7.1 1.3 1.6 2.4

Taula 15: Rendiment de la CPU amb en l’experiment 1

Memory (MB) Free (MB) Swap (MB)

4640.555 198.637 668.070

4640.652 196.684 668.070

4726.016 118.648 670.070

4693.371 151.898 676.570

4720.234 136.199 691.320

4736.734 130.469 698.320

4728.453 131.520 711.320

4750.672 124.418 727.070

4745.324 141.328 736.820

4771.793 125.297 772.664

4115.371 784.559 772.570

4440.117 462.809 772.570

4722.547 181.379 772.570

4787.797 133.129 787.977

4824.160 123.828 823.070

4851.035 100.566 823.820

4853.285 129.453 842.570

4875.418 125.469 859.570

4166.961 850.688 890.070

3830.637 1183.305 890.070

3830.723 1183.602 890.070

3897.852 1110.340 890.070

83

Page 99: Facultat d’Informatica de Barcelona` UNIVERSITAT

3956.750 1051.414 890.070

3984.230 1016.051 889.820

4002.059 994.977 889.820

4014.691 979.805 889.570

4032.945 959.273 889.570

4046.027 943.969 889.570

4064.910 924.840 889.570

4088.941 898.102 889.570

4119.344 866.508 889.570

4139.852 845.938 889.570

4154.898 832.402 889.570

4173.531 809.539 889.570

4187.578 797.480 889.570

4199.191 782.047 889.570

4205.934 765.887 889.570

4176.633 770.441 889.820

4164.777 775.480 890.070

4180.578 747.477 890.070

4200.434 731.363 890.070

4222.750 705.934 890.070

4240.836 681.430 890.070

4237.848 686.090 890.070

4256.711 663.027 890.070

4282.516 626.293 890.070

4309.215 606.848 890.070

4321.266 595.465 890.070

4339.691 575.074 890.070

4359.840 552.676 890.070

4371.059 543.871 890.070

4385.816 523.562 890.070

4397.148 514.469 890.070

84

Page 100: Facultat d’Informatica de Barcelona` UNIVERSITAT

4415.594 514.316 890.070

4428.496 499.066 890.070

4445.445 482.301 890.070

4476.883 450.832 890.070

4504.621 421.484 890.070

4524.422 401.855 890.070

4536.320 389.465 890.070

4556.668 368.793 890.070

4576.051 348.926 890.070

4600.906 326.324 890.070

4639.383 287.492 890.070

4657.219 272.016 890.070

4672.539 315.547 890.070

4694.430 262.066 890.070

4698.363 291.980 890.070

4698.484 294.332 890.070

4698.656 295.395 890.070

4698.691 314.957 890.070

4698.855 322.281 890.070

4698.934 322.527 890.070

4698.977 322.762 890.070

4699.035 322.410 890.070

4699.105 322.871 890.070

4699.137 323.109 890.070

4699.230 322.188 890.070

4699.402 321.586 890.070

4699.449 321.398 890.070

4699.559 322.777 890.070

4699.691 324.359 889.820

4699.703 324.379 889.820

4699.762 322.145 889.820

85

Page 101: Facultat d’Informatica de Barcelona` UNIVERSITAT

4699.820 322.371 889.820

4699.883 321.223 889.820

4699.945 320.645 889.820

4700.152 321.527 889.820

4700.152 321.652 889.820

4701.539 320.641 889.820

Taula 17: Rendiment de la memoria en l’experiment 1

Cpu0 (%) Cpu1 (%) Cpu2 (%) Cpu3 (%)

11.8 0 0 0

3.4 3.1 4.1 3.1

6.5 7.9 12.9 23.2

23.0 11.4 19.1 27.0

11.9 18.8 19.1 19.3

18.1 16.0 14.3 14.2

15.9 13.3 10.9 19.7

8.6 19.5 13.7 21.7

15.3 9.3 12.7 16.6

15.6 6.8 14.6 11.9

13.8 8.9 10.3 4.5

11.0 7.6 7.3 11.6

16.8 10.8 11.3 9.0

11.0 5.7 9.3 9.2

17.9 10.0 13.0 14.4

23.3 12.1 32.2 26.1

12.8 6.9 14.6 19.8

11.5 8.7 12.9 11.6

19.1 14.4 18.8 24.9

23.3 37.2 43.0 33.5

69.2 38.0 66.5 34.5

48.6 40.2 71.6 45.0

86

Page 102: Facultat d’Informatica de Barcelona` UNIVERSITAT

17.1 20.7 17.1 20.7

14.7 10.1 24.1 20.4

23.4 28.4 27.0 31.4

70.1 54.4 81.3 63.6

29.0 24.7 61.8 62.4

40.7 26.2 60.2 58.5

38.6 46.9 86.0 17.4

46.8 60.8 88.1 15.5

45.2 82.5 44.3 44.4

46.4 57.3 92.5 91.0

88.5 51.2 84.0 100.0

91.7 96.7 91.9 97.0

71.0 82.1 100.0 97.8

79.1 68.1 79.0 100.0

95.9 65.0 89.1 100.0

100.0 27.3 100.0 100.0

100.0 32.0 100.0 94.5

94.4 55.7 100.0 57.3

85.9 100.0 100.0 72.4

100.0 49.8 86.6 91.8

100.0 77.9 100.0 54.1

98.0 91.9 100.0 76.0

100.0 57.6 68.7 100.0

100.0 85.2 16.6 100.0

88.8 89.2 60.3 91.6

100.0 100.0 63.2 3.3

78.0 73.6 93.2 16.9

16.1 4.7 1.3 15.3

1.4 2.5 1.6 34.4

2.8 3.4 2.0 19.2

1.5 28.5 17.2 20.1

87

Page 103: Facultat d’Informatica de Barcelona` UNIVERSITAT

2.8 25.0 33.9 14.4

5.4 20.0 32.9 16.0

15.8 10.4 43.4 14.3

2.9 5.4 9.8 8.7

4.2 6.4 7.1 9.7

5.7 9.2 4.3 13.0

12.7 12.6 7.2 12.0

15.6 17.4 7.6 16.9

8.4 5.5 1.6 11.4

25.9 19.4 10.3 16.1

13.6 15.0 7.3 8.0

16.9 14.2 9.2 18.8

14.0 13.9 6.0 6.5

11.0 12.3 13.5 5.1

13.3 17.3 10.3 11.4

7.4 15.2 5.7 9.0

7.5 16.3 5.4 8.6

10.3 10.9 7.8 5.2

9.5 4.3 9.4 4.8

9.1 7.2 16.8 7.1

12.8 8.4 10.6 9.5

14.0 10.7 9.1 4.0

16.5 11.2 4.0 3.9

13.6 6.6 2.9 4.4

13.2 7.1 3.6 7.9

12.6 7.2 3.4 10.3

14.7 6.0 4.7 11.0

8.7 2.8 7.4 7.7

8.3 4.7 10.9 10.3

15.7 9.9 8.2 5.3

21.2 3.1 2.3 16.6

88

Page 104: Facultat d’Informatica de Barcelona` UNIVERSITAT

14.0 6.0 18.2 22.3

18.2 10.2 5.5 23.5

7.3 4.5 2.7 11.3

5.6 5.4 3.2 2.2

6.6 6.8 5.6 2.3

10.1 7.1 5.2 1.1

11.6 7.5 3.8 .9

13.7 9.0 2.2 2.3

12.1 6.3 3.9 .6

31.8 6.4 5.9 1.7

33.6 9.6 4.3 2.7

12.5 12.6 6.2 10.9

16.0 6.6 5.0 8.7

27.7 6.6 4.8 1.8

22.4 7.2 14.2 1.9

20.0 6.2 5.7 4.7

20.5 1.6 4.8 5.1

16.0 5.2 3.9 6.0

16.4 3.1 3.0 5.1

19.4 3.2 5.9 10.4

20.9 1.7 5.6 5.5

19.8 3.6 3.9 5.0

16.8 1.2 5.9 4.9

16.3 1.7 15.3 10.8

6.2 2.6 22.7 5.1

3.8 7.8 15.4 7.2

6.1 4.6 19.1 6.8

12.7 5.9 7.5 9.7

10.9 8.3 4.8 5.2

8.1 10.1 6.2 5.0

30.5 34.3 22.7 13.6

89

Page 105: Facultat d’Informatica de Barcelona` UNIVERSITAT

36.4 23.9 14.6 23.6

2.3 14.5 8.2 11.2

3.4 18.0 6.2 7.6

1.9 20.1 6.9 11.2

6.8 10.5 9.1 9.7

15.8 27.2 15.6 39.6

17.1 35.2 14.3 8.1

8.8 11.6 17.1 3.9

10.9 13.0 17.9 1.7

7.5 13.4 14.0 1.3

4.0 10.5 10.7 2.7

3.6 11.6 8.2 2.7

9.0 15.1 10.6 3.3

7.8 7.9 4.9 1.4

8.4 9.4 6.6 2.4

16.4 7.5 7.8 7.3

12.7 7.3 9.2 1.0

13.8 4.8 2.6 .6

18.3 2.7 3.6 2.1

18.6 1.6 .8 1.1

5.0 1.2 1.3 .9

1.5 .4 1.0 .2

1.7 1.3 1.3 1.5

.9 .2 1.1 .7

1.4 1.6 4.5 1.6

1.9 .5 .8 1.5

2.8 .7 .8 .8

1.0 .5 .3 .3

1.3 .1 .2 1.0

20.0 1.9 11.8 2.9

3.3 1.5 7.4 1.6

90

Page 106: Facultat d’Informatica de Barcelona` UNIVERSITAT

.9 .3 .3 .5

1.7 1.0 .5 1.5

6.7 .1 .2 .7

1.1 .2 .1 .3

Taula 19: Rendiment de la CPU en l’experiment 2

Memory (MB) Free (MB) Swap (MB)

4683.594 339.246 889.570

4736.566 288.031 889.570

4897.496 126.863 892.570

4898.867 133.125 894.570

4904.910 129.863 898.820

4901.910 127.164 902.570

4900.973 124.176 906.070

4903.598 126.840 909.570

4897.551 133.039 917.070

4887.637 134.297 920.070

4900.879 121.605 920.570

4892.738 130.148 925.070

4882.145 133.516 929.820

4894.453 124.367 932.320

4872.316 146.809 935.820

4879.051 151.973 948.070

4884.215 148.344 953.320

4895.738 140.766 958.070

4906.609 130.426 965.570

4943.727 130.605 987.320

4978.887 116.641 1019.320

4314.492 798.195 1049.000

4665.508 451.984 1048.750

4904.125 209.344 1048.750

91

Page 107: Facultat d’Informatica de Barcelona` UNIVERSITAT

4975.355 137.301 1055.027

4960.961 126.816 1061.555

4884.832 245.750 1069.070

4966.066 175.090 1087.570

5027.262 120.039 1091.070

5041.625 119.859 1097.320

5017.699 145.891 1104.820

5028.848 130.090 1112.070

5050.746 122.852 1117.070

5038.184 136.242 1124.820

5048.539 132.684 1130.078

5064.977 128.250 1141.621

5064.285 134.816 1149.406

5087.020 120.035 1159.195

5102.230 127.695 1175.008

5123.020 118.793 1183.039

5152.762 100.867 1190.066

5134.719 126.004 1203.320

5135.129 126.477 1212.070

5144.445 127.215 1225.070

5152.352 129.922 1234.570

5158.566 132.102 1241.820

4856.777 436.664 1249.820

4729.492 557.051 1249.820

3553.762 1724.574 1249.570

3554.500 1741.160 1249.320

3670.941 1634.840 1249.320

3769.238 1533.270 1249.320

3883.168 1415.051 1249.320

3996.695 1293.664 1249.070

4090.594 1187.855 1247.570

92

Page 108: Facultat d’Informatica de Barcelona` UNIVERSITAT

4155.121 1100.891 1247.570

4205.324 1039.445 1247.820

4265.496 973.246 1247.820

4341.625 892.535 1247.820

4426.047 805.395 1247.820

4502.410 721.277 1247.820

4544.641 682.914 1247.820

4644.891 577.133 1247.820

4732.926 483.949 1247.820

4859.492 359.590 1247.820

4941.527 276.246 1247.820

5017.469 152.770 1247.820

5077.648 131.961 1248.320

5080.719 131.012 1248.820

5089.957 124.133 1249.320

5083.879 136.258 1250.070

5065.109 152.008 1250.570

5088.355 129.742 1251.070

5066.293 150.855 1251.570

5116.609 136.031 1251.820

5130.672 122.238 1252.070

5120.430 133.074 1252.320

5132.223 120.355 1252.570

5129.723 121.090 1253.070

5114.938 135.785 1253.570

5107.129 143.266 1254.320

5129.043 118.574 1256.570

5110.473 136.688 1257.320

5120.938 123.125 1258.070

5095.961 124.988 1258.570

5127.520 119.973 1258.820

93

Page 109: Facultat d’Informatica de Barcelona` UNIVERSITAT

5111.285 133.176 1259.070

5108.883 135.930 1259.320

5122.691 123.652 1259.320

5115.824 126.801 1259.570

5093.910 150.797 1259.820

5110.488 132.832 1260.070

5102.883 141.898 1260.320

5110.656 128.035 1260.570

5112.418 131.773 1261.070

5117.812 128.102 1261.570

5117.633 125.000 1262.070

5117.707 127.625 1262.570

5113.680 132.887 1263.320

5119.109 126.383 1263.570

5113.359 134.379 1264.070

5126.051 126.652 1264.570

5128.535 121.887 1264.820

5122.039 129.414 1267.570

5119.039 132.594 1268.070

5119.430 132.301 1268.570

5126.035 129.770 1271.070

5129.090 123.848 1272.070

5133.094 120.789 1272.820

5130.949 125.898 1273.070

5136.918 122.012 1273.570

5135.945 120.367 1274.070

5131.988 124.289 1274.570

5135.586 124.621 1275.070

5087.277 145.129 1275.820

5114.125 142.957 1276.320

5118.375 133.598 1276.820

94

Page 110: Facultat d’Informatica de Barcelona` UNIVERSITAT

5117.043 137.516 1277.320

5134.617 122.996 1279.570

5120.512 138.773 1280.070

5116.855 137.984 1280.570

5113.477 143.586 1281.320

5110.781 145.934 1281.820

5121.625 137.227 1281.820

5130.047 130.211 1282.070

5128.094 133.102 1284.320

5132.906 131.445 1284.570

5149.457 131.051 1284.820

5177.875 130.930 1284.820

5176.605 130.625 1284.820

5195.262 119.164 1285.320

5207.332 132.586 1285.820

5200.449 138.543 1286.070

5199.816 152.035 1286.320

5238.641 125.902 1286.320

5231.465 134.543 1286.570

5231.508 144.625 1286.570

5232.242 155.562 1286.570

5232.359 156.066 1286.570

5215.766 173.395 1286.570

5215.812 173.426 1286.570

5215.922 173.551 1286.570

5215.957 174.441 1286.570

5215.984 174.309 1286.570

5178.250 214.473 1286.820

5179.363 211.121 1286.820

5179.422 211.738 1286.820

5179.469 211.957 1286.820

95

Page 111: Facultat d’Informatica de Barcelona` UNIVERSITAT

5179.477 213.441 1286.820

5179.520 212.422 1286.820

Taula 21: Rendiment de la memoria en l’experiment 2

Pujada Baixada

451 1000

103 396

Taula 22: Ample de banda en l’experiment 3

96