There are two problems here, which must be solved independently.
Creating a slave
With that size, 100GB, mysqldump is usually to slow too be done efficiently. Try using a binary backup. You have several options: @paul is telling you one, but it has the inconvenient that the master will be locked for the duration of the copy process. Additionally, rsync can be very efficient if you have multiple small files, but it may not be for larger file sizes changed randomly throughout it (if you have a large ibdata1).
My recommendations would be snapshoting (if you are using virtual machines or a filesystem that allow it: ZFS, any other on top of LVM, etc.) or Percona Xtrabackup/Oracle Enterprise Backup. These options will make the backup process almost as fast as copying files from the filesystem without almost no lock at all. Some of them also allow for parallel copy, if your bandwidth allows it.
If none of these work for you, try using a logic parallel backup/restore utility like mydumper.
Replication with increasing lag
You must discover why that is happening first, (profile your queries on both servers) but these are some of the most common causes:
- Use hardware/resources at least as good or better that the master for your slave. If the slave is slower, as replication runs in a single thread (mostly), the slave will lag.
- If you have long-running transactions in concurrency, try using the
binlog_format = ROW. It can augment your bandwidth usage but reduce the slave's load.
- Try upgrading the MySQL versions, if that is a possibility. There has been a lot of performance improvements in terms of query execution and binary log in later versions. For example, one reason why you may be lagging is because the buffers are not hot on the recently-started slave. That is mitigated partially in the latest versions. Also, multiple-thread replication execution has been somewhat integrated.
- You can relax some integrity configurations on the slave, as in the case of a crash, you can always re-import from the master in the event of the crash (
innodb_flush_log_at_trx_commit, for example).
- As a last resort, you can try alternative protocols that allow more synchronized communication between servers, but that is usually involves much more work.