O Owncloud é um serviço web para armazenamento e compartilhamento de arquivos similar ao Dropbox ou Google Drive. O principal diferencial do Owncloud é que ele pode ser implementado de forma privada. Por ser um software de código aberto qualquer pessoa ou empresa pode baixar e instalar na sua estrutura e ficar responsável pelos dados e pelo funcionamento do serviço. É baseado no conceito de "computação em nuvem" ("cloud computing").
O '''Owncloud''' é um serviço web para armazenamento e compartilhamento de arquivos similar ao Dropbox ou Google Drive. O principal diferencial do Owncloud é que ele pode ser implementado de forma privada. Por ser um software de código aberto qualquer pessoa ou empresa pode baixar e instalar na sua estrutura e ficar responsável pelos dados e pelo funcionamento do serviço. É baseado no conceito de '''"computação em nuvem"''' ("cloud computing").
A implementação típica do owncloud provê um servidor web onde roda o serviço e onde são armazenados os arquivos. A ideia do trabalho é utilizar dessa ferramenta para implementar um serviço de armazenamento de arquivos '''descentralizado''' e utilizar a internet para sincronizar os arquivos em locais diferentes.
A implementação típica do owncloud provê um servidor web onde roda o serviço e são armazenados os arquivos. A ideia do trabalho é utilizar dessa ferramenta para implementar um serviço de armazenamento de arquivos '''descentralizado''' e utilizar a internet para sincronizar os arquivos em locais diferentes.
Essa implementação traria alguns benefícios:
Essa implementação traria alguns benefícios:
1 . redundância geográfica dos arquivos
1. Redundância geográfica dos arquivos<br>
2 . Melhor velocidade de upload e download em diferentes locais
2. Melhor velocidade de upload e download em diferentes locais(quando conectado a rede local)<br>
3. Alta disponibilidade
==Desenvolvimento:==
==Desenvolvimento:==
Edição das 18h46min de 19 de julho de 2016
1 O projeto
O Owncloud é um serviço web para armazenamento e compartilhamento de arquivos similar ao Dropbox ou Google Drive. O principal diferencial do Owncloud é que ele pode ser implementado de forma privada. Por ser um software de código aberto qualquer pessoa ou empresa pode baixar e instalar na sua estrutura e ficar responsável pelos dados e pelo funcionamento do serviço. É baseado no conceito de "computação em nuvem" ("cloud computing").
A implementação típica do owncloud provê um servidor web onde roda o serviço e são armazenados os arquivos. A ideia do trabalho é utilizar dessa ferramenta para implementar um serviço de armazenamento de arquivos descentralizado e utilizar a internet para sincronizar os arquivos em locais diferentes.
Essa implementação traria alguns benefícios:
1. Redundância geográfica dos arquivos
2. Melhor velocidade de upload e download em diferentes locais(quando conectado a rede local)
3. Alta disponibilidade
2 Desenvolvimento:
3 Implementação:
Os passos abaixo devem ser feitos em todas os nós da implementação
Vai pedir senha do banco, por garantia coloque a mesma senha em todos.
Modificar o arquivo /etc/hosts para colocar o ip e nome de todas as maquinas, por exemplo:
192.168.15.228 debian1
192.168.15.229 debian2
192.168.15.230 debian3
</syntaxhighlight>
Crie e edite o arquivo /etc/mysql/conf.d/galera.cnf com o conteúdo:
[mysqld]
Pare o serviço mysql em todos os nós:
debian1 # systemctl stop mysql
debian2 # systemctl stop mysql
debian3 # systemctl stop mysqllmente
</syntaxhighlight>
Os passos abaixo devem ser feitos somente em um dos nós:
Copie o conteúdo de /etc/mysql/debian.cnf do primeiro nó para os outros para que todos fiquem com o mesmo conteúdo.
Crie e inicie o cluste:
debian1# galera_new_cluster
</syntaxhighlight>
Verifique a quantidade de usuários no cluster com o comando(irá pedir a senha do banco):
mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'
</syntaxhighlight>
Inicie os serviços mysql nos outros nós e verifique com o comando acima se estão entrando no cluster.
systemctl start mysql
</syntaxhighlight>
Deverá aparecer algo como isso(em caso de 3 nós):
+--------------+
| cluster size |
+--------------+
| 3 |
+--------------+
</syntaxhighlight>
Criando o banco para o Owncloud(como o banco já estão sendo replicado só é necessários digitar os passos abaixo em um deles):
Digite o comando abaixo para entrar no modo de edição do banco(pedirá a senha do banco):
mysql -uroot -p</syntaxhighlight>
Dentro digite:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
quit
</syntaxhighlight>
Configurando o csync2:
Criar os certificados com os comandos abaixo em todas as maquinas:
openssl genrsa -out /etc/csync2_ssl_key.pem 1024
openssl req -new -key /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.csr
openssl x509 -req -days 600 -in /etc/csync2_ssl_cert.csr -signkey /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.pem
</syntaxhighlight>
Obs: não preencha as informações pedidas(Common Name (CN)...), somente dê enter.
Crie a pasta /etc/csync2 em todos os nós:
mkdir /etc/csync2</syntaxhighlight>
Gere uma chave em um dos nós e copie para os outros:
csync2 -k /etc/csync2/exemplo.key