Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Discuss
  3. Migration from one server to another with a floating IP and minimizing downtime

Migration from one server to another with a floating IP and minimizing downtime

Scheduled Pinned Locked Moved Discuss
22 Posts 5 Posters 1.9k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • girishG girish

    I think /home/yellowtent/boxdata , /home/yellowtent/platformdata and /var/lib/mysql should be enough. Cloudron doesn't write anywhere else.

    d19dotcaD Offline
    d19dotcaD Offline
    d19dotca
    wrote on last edited by
    #7

    @girish Interestingly, I'm getting close I think but I am getting a lot of these kind of errors in an rsync dry run and this seems to then conclude in a "code 23" error.

    The command I'm running is this: rsync --progress --human-readable --delete-delay --archive --compress --rsync-path="sudo rsync" -e 'ssh -p {port}' {user}@{IP}:/home/yellowtent/ /home/yellowtent/ --dry-run

    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_usermeta.MYD": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_usermeta.MYI": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_usermeta_2014.sdi": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_users.MYD": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_users.MYI": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/mysql/dfe0390f47991409/wp_users_2015.sdi": Permission denied (13)
    [...]
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/PG_VERSION": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/pg_hba.conf": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/pg_ident.conf": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/postgresql.auto.conf": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/postgresql.conf": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/postmaster.opts": Permission denied (13)
    rsync: [generator] recv_generator: failed to stat "/home/yellowtent/platformdata/postgresql/14/main/postmaster.pid": Permission denied (13)
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [generator=3.2.7]
    

    I assume this has to do with needing to use the yellowtent user or something, but still working on it. Figure I'd give a quick update in case there was some suggestions to get past it. 😅

    --
    Dustin Dauncey
    www.d19.ca

    1 Reply Last reply
    0
    • d19dotcaD Offline
      d19dotcaD Offline
      d19dotca
      wrote on last edited by
      #8

      If I modify the command to this, I get a slightly different set of errors but ultimately still permission denied.

      Command: rsync --progress --human-readable --delete-delay --archive --compress --rsync-path="sudo -u yellowtent rsync" -e 'ssh -p {port}' {user}@{IP}:/home/yellowtent/ /home/yellowtent/ --dry-run

      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/e895bea3fd021766" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/f426f5f438dd9395" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/fcd9711342a78f4d" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/mysql" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/performance_schema" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/sys" failed: Permission denied (13)
      rsync: [sender] opendir "/home/yellowtent/platformdata/postgresql/14/main" failed: Permission denied (13)
      rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [generator=3.2.7]
      

      --
      Dustin Dauncey
      www.d19.ca

      girishG 1 Reply Last reply
      0
      • d19dotcaD Offline
        d19dotcaD Offline
        d19dotca
        wrote on last edited by
        #9

        Btw, this looks wrong to me somehow... shouldn't this all be owned by yellowtent?

        ubuntu@my:~$ ls -alh /home/yellowtent/platformdata/
        total 112K
        drwxr-xr-x 21 yellowtent yellowtent 4.0K Oct 12 08:17 .
        drwxr-xr-x  7 yellowtent yellowtent 4.0K Nov 13 10:01 ..
        -rw-r--r--  1 yellowtent yellowtent    5 Nov 19  2022 CRON_SEED
        -rw-r--r--  1 yellowtent yellowtent 1.3K Nov 13 10:01 INFRA_VERSION
        -rw-r--r--  1 yellowtent yellowtent    5 Nov 13 10:01 VERSION
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 22 10:10 acme
        drwxr-xr-x  3 yellowtent yellowtent 4.0K Oct 12 08:17 addons
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 25  2022 backup
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 25  2022 cifs
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 19  2022 collectd
        -rw-r--r--  1 yellowtent yellowtent  826 Nov 19  2022 dhparams.pem
        -rw-r--r--  1 yellowtent yellowtent 6.6K Nov 23 03:53 diskusage.json
        -rw-r--r--  1 yellowtent yellowtent  245 Nov 23 21:42 features-info.json
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Dec 30  2022 firewall
        drwxr-xr-x  3 tss        sgx        4.0K Apr  4  2023 graphite
        drwxr-xr-x  2 root       root       4.0K Nov 22 06:00 logrotate.d
        drwxr-xr-x 75 yellowtent yellowtent 4.0K Nov 19 17:30 logs
        drwxr-xr-x  8 tss        root       4.0K Nov 23 22:25 mongodb
        drwxr-xr-x 33 tss        sgx        4.0K Nov 23 05:22 mysql
        drwxr-xr-x  4 yellowtent yellowtent 4.0K Nov 23 10:10 nginx
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Jul  5 00:37 oidc
        drwxr-xr-x  3 root       root       4.0K Apr  4  2023 postgresql
        drwxr-xr-x 25 root       root       4.0K Nov 19 17:30 redis
        drwxr-xr-x  3 yellowtent yellowtent 4.0K Nov 19  2022 sftp
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 19  2022 sshfs
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Dec  1  2022 tls
        drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 13 08:34 update
        

        Maybe this is the issue, that some of these files/directories are owned by something called "tss" instead?

        --
        Dustin Dauncey
        www.d19.ca

        girishG 1 Reply Last reply
        0
        • d19dotcaD d19dotca

          If I modify the command to this, I get a slightly different set of errors but ultimately still permission denied.

          Command: rsync --progress --human-readable --delete-delay --archive --compress --rsync-path="sudo -u yellowtent rsync" -e 'ssh -p {port}' {user}@{IP}:/home/yellowtent/ /home/yellowtent/ --dry-run

          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/e895bea3fd021766" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/f426f5f438dd9395" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/fcd9711342a78f4d" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/mysql" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/performance_schema" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/mysql/sys" failed: Permission denied (13)
          rsync: [sender] opendir "/home/yellowtent/platformdata/postgresql/14/main" failed: Permission denied (13)
          rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [generator=3.2.7]
          
          girishG Offline
          girishG Offline
          girish
          Staff
          wrote on last edited by
          #10

          @d19dotca need to ssh/run as root instead of yellowtent . The directories contain files with all sorts of mixed permissions.

          d19dotcaD 1 Reply Last reply
          1
          • d19dotcaD Offline
            d19dotcaD Offline
            d19dotca
            wrote on last edited by
            #11

            Omg of course, silly me, sorry. 👼 let me try this again with sudo, just need to copy over the SSH keys to root on the new server.

            --
            Dustin Dauncey
            www.d19.ca

            1 Reply Last reply
            0
            • d19dotcaD d19dotca

              Btw, this looks wrong to me somehow... shouldn't this all be owned by yellowtent?

              ubuntu@my:~$ ls -alh /home/yellowtent/platformdata/
              total 112K
              drwxr-xr-x 21 yellowtent yellowtent 4.0K Oct 12 08:17 .
              drwxr-xr-x  7 yellowtent yellowtent 4.0K Nov 13 10:01 ..
              -rw-r--r--  1 yellowtent yellowtent    5 Nov 19  2022 CRON_SEED
              -rw-r--r--  1 yellowtent yellowtent 1.3K Nov 13 10:01 INFRA_VERSION
              -rw-r--r--  1 yellowtent yellowtent    5 Nov 13 10:01 VERSION
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 22 10:10 acme
              drwxr-xr-x  3 yellowtent yellowtent 4.0K Oct 12 08:17 addons
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 25  2022 backup
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 25  2022 cifs
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 19  2022 collectd
              -rw-r--r--  1 yellowtent yellowtent  826 Nov 19  2022 dhparams.pem
              -rw-r--r--  1 yellowtent yellowtent 6.6K Nov 23 03:53 diskusage.json
              -rw-r--r--  1 yellowtent yellowtent  245 Nov 23 21:42 features-info.json
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Dec 30  2022 firewall
              drwxr-xr-x  3 tss        sgx        4.0K Apr  4  2023 graphite
              drwxr-xr-x  2 root       root       4.0K Nov 22 06:00 logrotate.d
              drwxr-xr-x 75 yellowtent yellowtent 4.0K Nov 19 17:30 logs
              drwxr-xr-x  8 tss        root       4.0K Nov 23 22:25 mongodb
              drwxr-xr-x 33 tss        sgx        4.0K Nov 23 05:22 mysql
              drwxr-xr-x  4 yellowtent yellowtent 4.0K Nov 23 10:10 nginx
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Jul  5 00:37 oidc
              drwxr-xr-x  3 root       root       4.0K Apr  4  2023 postgresql
              drwxr-xr-x 25 root       root       4.0K Nov 19 17:30 redis
              drwxr-xr-x  3 yellowtent yellowtent 4.0K Nov 19  2022 sftp
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 19  2022 sshfs
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Dec  1  2022 tls
              drwxr-xr-x  2 yellowtent yellowtent 4.0K Nov 13 08:34 update
              

              Maybe this is the issue, that some of these files/directories are owned by something called "tss" instead?

              girishG Offline
              girishG Offline
              girish
              Staff
              wrote on last edited by
              #12

              @d19dotca said in Migration from one server to another with a floating IP and minimizing downtime:

              Maybe this is the issue, that some of these files/directories are owned by something called "tss" instead?

              The usernames in containers appear differently as usernames in host. This tss is possibly uid 1000 or something like that on host (check /etc/shadow)

              1 Reply Last reply
              1
              • girishG girish

                @d19dotca need to ssh/run as root instead of yellowtent . The directories contain files with all sorts of mixed permissions.

                d19dotcaD Offline
                d19dotcaD Offline
                d19dotca
                wrote on last edited by d19dotca
                #13

                @girish Ah you called it - sorry for forgetting the sudo part, can't believe I forgot that, lol. Been trying too many things today I guess, haha.

                Here's the command the seems to work and it's stats output, although this seems maybe incorrect to me given the size of the data and how much needs to be created and such considering the backup I restored from is only 8 hours old or so. However as a percentage compared to how many files exist total it's fairly low what needs to be deleted or created so I guess maybe it makes sense still.

                Command: sudo rsync --stats --human-readable --delete-delay --archive --compress --rsync-path="sudo -u yellowtent rsync" -e 'ssh -p {port}' {user}@{IP}:/home/yellowtent/ /home/yellowtent/ --dry-run

                Number of files: 555,244 (reg: 512,959, dir: 42,208, link: 77)
                Number of created files: 2,308 (reg: 2,213, dir: 95)
                Number of deleted files: 702 (reg: 690, dir: 12)
                Number of regular files transferred: 11,365
                Total file size: 92.88G bytes
                Total transferred file size: 18.64G bytes
                Literal data: 0 bytes
                Matched data: 0 bytes
                File list size: 14.17M
                File list generation time: 0.001 seconds
                File list transfer time: 0.000 seconds
                Total bytes sent: 286.61K
                Total bytes received: 24.61M
                
                sent 286.61K bytes  received 24.61M bytes  1.42M bytes/sec
                total size is 92.88G  speedup is 3,731.42 (DRY RUN)
                

                --
                Dustin Dauncey
                www.d19.ca

                1 Reply Last reply
                1
                • d19dotcaD Offline
                  d19dotcaD Offline
                  d19dotca
                  wrote on last edited by
                  #14

                  Ah I figured out why it's so many, when I used the --itemized-changes flag, it shows that a lot of the reasons it's bringing over so many files is due to the timestamp. It seems it's because the timestamp in the source is older than the timestamp in the destination due to the timestamps created on some of these files were the time of the backup restoration time on Server B. Since I'm using the --archive flag, it is trying to keep all of that in sync with each other so that the timestamps on the destination match the source. I believe that's why it's picking up so many more changes than I expected.

                  --
                  Dustin Dauncey
                  www.d19.ca

                  1 Reply Last reply
                  0
                  • d19dotcaD Offline
                    d19dotcaD Offline
                    d19dotca
                    wrote on last edited by
                    #15

                    Okay, I've migrated servers today and flipped the switch, things seem to be running steady although since I've been combing through the logs I do see a few concerns but not sure if this is related to the migration or not. I'll write up more descriptive tasks I took and details for those who want to attempt this in the future by the way. 🙂

                    I'm seeing this somewhat often in my Mail logs:

                    Nov 23 17:34:25[ERROR] [224C5AD2-AF35-4EE2-A3F3-05980A9896E2.1] [limit] conn_concur_decr:Error: MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
                    

                    I assume that's the issue perhaps that I hadn't realized was related to the changelog mentioned here?

                    @girish said in Email Event Log loading very slowly, seems tied to overall Email domain list health checks:

                    This seems related to the redis issue . Think it gets fixed with https://git.cloudron.io/cloudron/box/-/commit/e64182d79134e8828c2fa953c676a8f6b08247b7

                    One issue I did run into btw was around MongoDB, where it refused to startup and it kept complaining about possible corruption. No matter what I did it wouldn't work so I just ended up backing it up, then removing the files in the `/home/yellowtent/platformdata/mongodb/``` directory and then running an rsync again to bring over the files from the working server, and restarted the MongoDB service and all went well again. 🙂

                    --
                    Dustin Dauncey
                    www.d19.ca

                    girishG 1 Reply Last reply
                    2
                    • d19dotcaD Offline
                      d19dotcaD Offline
                      d19dotca
                      wrote on last edited by
                      #16

                      @girish I'm also seeing this in my logs repeatedly for box logs, seems related perhaps to the email hosting part:

                      Nov 23 17:39:31box:server no such route: GET eventlog?page=1&per_page=20&search=&types=&access_token=<redacted>
                      [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
                      at new NodeError (node:internal/errors:399:5)
                      at ServerResponse.setHeader (node:_http_outgoing:645:11)
                      at ServerResponse.header (/home/yellowtent/box/node_modules/express/lib/response.js:794:10)
                      at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:174:12)
                      at ServerResponse.json (/home/yellowtent/box/node_modules/express/lib/response.js:278:15)
                      at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:162:21)
                      at /home/yellowtent/box/node_modules/connect-lastmile/lib/index.js:80:28
                      at Layer.handle_error (/home/yellowtent/box/node_modules/express/lib/router/layer.js:71:5)
                      at trim_prefix (/home/yellowtent/box/node_modules/express/lib/router/index.js:326:13)
                      at /home/yellowtent/box/node_modules/express/lib/router/index.js:286:9
                      Nov 23 17:39:31box:server no such route: GET solr_config?access_token=<redacted>
                      [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
                      at new NodeError (node:internal/errors:399:5)
                      at ServerResponse.setHeader (node:_http_outgoing:645:11)
                      at ServerResponse.header (/home/yellowtent/box/node_modules/express/lib/response.js:794:10)
                      at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:174:12)
                      at ServerResponse.json (/home/yellowtent/box/node_modules/express/lib/response.js:278:15)
                      at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:162:21)
                      at /home/yellowtent/box/node_modules/connect-lastmile/lib/index.js:80:28
                      at Layer.handle_error (/home/yellowtent/box/node_modules/express/lib/router/layer.js:71:5)
                      at trim_prefix (/home/yellowtent/box/node_modules/express/lib/router/index.js:326:13)
                      at /home/yellowtent/box/node_modules/express/lib/router/index.js:286:9
                      Nov 23 17:39:34box:server no such route: GET usage?domain={domain}&access_token=<redacted>
                      

                      Any suggestions on this one?

                      --
                      Dustin Dauncey
                      www.d19.ca

                      girishG 1 Reply Last reply
                      1
                      • d19dotcaD d19dotca

                        Okay, I've migrated servers today and flipped the switch, things seem to be running steady although since I've been combing through the logs I do see a few concerns but not sure if this is related to the migration or not. I'll write up more descriptive tasks I took and details for those who want to attempt this in the future by the way. 🙂

                        I'm seeing this somewhat often in my Mail logs:

                        Nov 23 17:34:25[ERROR] [224C5AD2-AF35-4EE2-A3F3-05980A9896E2.1] [limit] conn_concur_decr:Error: MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
                        

                        I assume that's the issue perhaps that I hadn't realized was related to the changelog mentioned here?

                        @girish said in Email Event Log loading very slowly, seems tied to overall Email domain list health checks:

                        This seems related to the redis issue . Think it gets fixed with https://git.cloudron.io/cloudron/box/-/commit/e64182d79134e8828c2fa953c676a8f6b08247b7

                        One issue I did run into btw was around MongoDB, where it refused to startup and it kept complaining about possible corruption. No matter what I did it wouldn't work so I just ended up backing it up, then removing the files in the `/home/yellowtent/platformdata/mongodb/``` directory and then running an rsync again to bring over the files from the working server, and restarted the MongoDB service and all went well again. 🙂

                        girishG Offline
                        girishG Offline
                        girish
                        Staff
                        wrote on last edited by
                        #17

                        @d19dotca said in Migration from one server to another with a floating IP and minimizing downtime:

                        One issue I did run into btw was around MongoDB, where it refused to startup and it kept complaining about possible corruption.

                        yeah, this is why the rsync solution is not entirely recommended. The databases probably hold state in memory as well . When we do a live rsync when the databases as running, it's possible that we are copying semi-baked stuff.

                        d19dotcaD 1 Reply Last reply
                        0
                        • d19dotcaD d19dotca

                          @girish I'm also seeing this in my logs repeatedly for box logs, seems related perhaps to the email hosting part:

                          Nov 23 17:39:31box:server no such route: GET eventlog?page=1&per_page=20&search=&types=&access_token=<redacted>
                          [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
                          at new NodeError (node:internal/errors:399:5)
                          at ServerResponse.setHeader (node:_http_outgoing:645:11)
                          at ServerResponse.header (/home/yellowtent/box/node_modules/express/lib/response.js:794:10)
                          at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:174:12)
                          at ServerResponse.json (/home/yellowtent/box/node_modules/express/lib/response.js:278:15)
                          at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:162:21)
                          at /home/yellowtent/box/node_modules/connect-lastmile/lib/index.js:80:28
                          at Layer.handle_error (/home/yellowtent/box/node_modules/express/lib/router/layer.js:71:5)
                          at trim_prefix (/home/yellowtent/box/node_modules/express/lib/router/index.js:326:13)
                          at /home/yellowtent/box/node_modules/express/lib/router/index.js:286:9
                          Nov 23 17:39:31box:server no such route: GET solr_config?access_token=<redacted>
                          [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
                          at new NodeError (node:internal/errors:399:5)
                          at ServerResponse.setHeader (node:_http_outgoing:645:11)
                          at ServerResponse.header (/home/yellowtent/box/node_modules/express/lib/response.js:794:10)
                          at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:174:12)
                          at ServerResponse.json (/home/yellowtent/box/node_modules/express/lib/response.js:278:15)
                          at ServerResponse.send (/home/yellowtent/box/node_modules/express/lib/response.js:162:21)
                          at /home/yellowtent/box/node_modules/connect-lastmile/lib/index.js:80:28
                          at Layer.handle_error (/home/yellowtent/box/node_modules/express/lib/router/layer.js:71:5)
                          at trim_prefix (/home/yellowtent/box/node_modules/express/lib/router/index.js:326:13)
                          at /home/yellowtent/box/node_modules/express/lib/router/index.js:286:9
                          Nov 23 17:39:34box:server no such route: GET usage?domain={domain}&access_token=<redacted>
                          

                          Any suggestions on this one?

                          girishG Offline
                          girishG Offline
                          girish
                          Staff
                          wrote on last edited by girish
                          #18

                          @d19dotca said in Migration from one server to another with a floating IP and minimizing downtime:

                          Any suggestions on this one?

                          Fix for this is coming next release, you can ignore it.

                          edit: fixed in https://git.cloudron.io/cloudron/box/-/commit/a056bcfdfe6c7bcb6d2f1cea2017c54f2ba6750f

                          1 Reply Last reply
                          1
                          • girishG girish

                            @d19dotca said in Migration from one server to another with a floating IP and minimizing downtime:

                            One issue I did run into btw was around MongoDB, where it refused to startup and it kept complaining about possible corruption.

                            yeah, this is why the rsync solution is not entirely recommended. The databases probably hold state in memory as well . When we do a live rsync when the databases as running, it's possible that we are copying semi-baked stuff.

                            d19dotcaD Offline
                            d19dotcaD Offline
                            d19dotca
                            wrote on last edited by d19dotca
                            #19

                            @girish said in Migration from one server to another with a floating IP and minimizing downtime:

                            @d19dotca said in Migration from one server to another with a floating IP and minimizing downtime:

                            One issue I did run into btw was around MongoDB, where it refused to startup and it kept complaining about possible corruption.

                            yeah, this is why the rsync solution is not entirely recommended. The databases probably hold state in memory as well . When we do a live rsync when the databases as running, it's possible that we are copying semi-baked stuff.

                            It seemed to work fine but just meant I had to delete the MongoDB files and bring back over from the source server. Everything was good after that. 🙂 But yeah not the simplest migration process.

                            It worked though. I’m running fully on the new server since Friday and so far have seen no issues beyond discovering some known ones I hadn’t seen earlier which you’ve confirmed are bug fixes coming soon. The amount of down time was maybe 15-20 minutes (and mostly just for the apps using MongoDB of which I only had 2 apps using it), and that was mostly due to restarting while trying to figure out the solution to the MongoDB errors which once solved the two apps depending on it came back up again and would be this much less downtime next time now that I know how to avoid the MongoDB stuff. For the apps that didn’t rely on MongoDB it was maybe 5-10 minutes. Much better than the 2+ hours of downtime needed doing a normal migration due to backup and restore times with object storage. 🙂 Going to try and write up some more notes on my experience for others who it may help in similar situations.

                            --
                            Dustin Dauncey
                            www.d19.ca

                            1 Reply Last reply
                            4
                            • ruihildtR Offline
                              ruihildtR Offline
                              ruihildt
                              wrote on last edited by
                              #20

                              Wow, that's super interesting.

                              Not that I need it, but being able to minimize downtime is always neat.

                              1 Reply Last reply
                              3
                              • necrevistonnezrN Offline
                                necrevistonnezrN Offline
                                necrevistonnezr
                                wrote on last edited by
                                #21

                                I just remembered that @fbartels had once published a blog post for this topic:
                                https://blog.9wd.eu/posts/cloudron-migration/ referenced in https://forum.cloudron.io/topic/5601/moving-cloudron-to-new-server-stop-apps/ and https://forum.cloudron.io/topic/4895/trigger-full-backup-from-cli-scripted-migration/
                                I don't know if it's still up to date, though.

                                d19dotcaD 1 Reply Last reply
                                5
                                • necrevistonnezrN necrevistonnezr

                                  I just remembered that @fbartels had once published a blog post for this topic:
                                  https://blog.9wd.eu/posts/cloudron-migration/ referenced in https://forum.cloudron.io/topic/5601/moving-cloudron-to-new-server-stop-apps/ and https://forum.cloudron.io/topic/4895/trigger-full-backup-from-cli-scripted-migration/
                                  I don't know if it's still up to date, though.

                                  d19dotcaD Offline
                                  d19dotcaD Offline
                                  d19dotca
                                  wrote on last edited by
                                  #22

                                  @necrevistonnezr Ah yes, that has some good stuff too, thanks for sharing that! 🙂 I think that article's steps still has some long downtime (at least when using object storage since it's so slow) but at least it's a bit more automated which is really cool.

                                  --
                                  Dustin Dauncey
                                  www.d19.ca

                                  1 Reply Last reply
                                  2
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Bookmarks
                                  • Search